# dokumentasi Django 2.2.9.dev20191202104323

# Geolokasi dengan GeoIP2

Obyek `GeoIP2` dibugnkus untuk MaxMind geoip2 Python library. [1]

Untuk melakukan geolokasi berdasarkan-IP, obyek `GeoIP2` membutuhkan geoip2 Python library dan GeoIP Country dan/atau City datasets in binary format (berkas CSV akan tidak bekerja!). Ambil berkas `GeoLite2-Country.mmdb.gz` dan `GeoLite2-City.mmdb.gz` dan buka mereka dalam direktori berhubungan pada pengaturan `GEOIP_PATH`.

Sebagai tambahan, sangat dianjurkan untuk memasang install libmaxminddb C library, sehingga `geoip2` dapat mempengaruhi kecepatan tercepat pustaka C.

## Contoh

Ini adalah sebuah contoh penggunaannya:

    >>> from django.contrib.gis.geoip2 import GeoIP2
    >>> g = GeoIP2()
    >>> g.country('google.com')
    {'country_code': 'US', 'country_name': 'United States'}
    >>> g.city('72.14.207.99')
    {'city': 'Mountain View',
    'continent_code': 'NA',
    'continent_name': 'North America',
    'country_code': 'US',
    'country_name': 'United States',
    'dma_code': 807,
    'latitude': 37.419200897216797,
    'longitude': -122.05740356445312,
    'postal_code': '94043',
    'region': 'CA',
    'time_zone': 'America/Los_Angeles'}
    >>> g.lat_lon('salon.com')
    (39.0437, -77.4875)
    >>> g.lon_lat('uh.edu')
    (-95.4342, 29.834)
    >>> g.geos('24.124.1.80').wkt
    'POINT (-97 38)'

## Acuan API

class `GeoIP2`(path=None, cache=0, country=None, city=None)

Obyek `GeoIP` tidak membutuhkan parameter apapun untuk menggunakan pengaturan awalan. Bagaimanapun, pada pengaturan `GEOIP_PATH` sangat sedikit harus disetel dengan jalur dari tempat dari kumpulan data GeoIP anda. Kata kunci inisialisasi berikut mungkin digunakan untuk menyesuaikan apapun dari awalan.

Argumen Katakunci | Deskripsi
--- | ---
`path` | Direktori dasar dimana data GeoIP ditempatkan atau jalur penuh dimana berkas data kota atau negara (`.mmdb`) ditempatkan. Anggap dataset kedua kota dan negara ditempatkan dalam direktori ini; timpa pengaturan `GEOIP_PATH`.
`cache` | Pengaturan cache ketika membuka dataset GeoIP. Mungkin berupa integer dalam (0, 1, 2, 4, 8) berhubungan ke pengaturan API C `MODE_AUTO`, `MODE_MMAP_EXT`, `MODE_MMAP`, dan `GEOIP_INDEX_CACHE` `MODE_MEMORY`, masing-masing. Awalan pada 0 (`MODE_AUTO`).
`country` | Nama dari berkas data negara GeoIP. Awalan pada `GeoLite2-Country.mmdb`. Mengatur kata kunci ini menimpa pengaturan `GEOIP_COUNTRY`.
`city` | Nama dari berkas data kota GeoIP. Awalan pada `GeoLite2-City.mmdb`. Mengatur kata kunci ini menimpa pengaturan `GEOIP_CITY`.

## Cara

### Instansiasi

classmethod `GeoIP2.``open`(path, cache)

Metode kelas ini memberi contoh obyek GeoIP dari jalur basisdata diberikan dan pengaturan cache diberikan.

### Meminta

Semua permintaan rutin-rutin berikut mungkin mengambil slah satu sebuah string alamat IP atau fully qualified domain name (FQDN). Sebagai contoh, kedua `'205.186.163.125'` dan `'djangoproject.com'` akan berupa parameter permintaan sah.

`GeoIP2.``city`(query)

Mengembalikan sebuah dictionary dari informasi kota untuk permintaan yang diberikan. Beberapa dari nilai dalam dictionary mungkin belum ditentukan (`None`).

`GeoIP2.``country`(query)

Mengembalikan sebuah dictionary dengan kode negara dan negara untuk permintaan yang diberikan.

`GeoIP2.``country_code`(query)

Mengembalikan kode negara terkait pada permintaan

`GeoIP2.``country_name`(query)

Mengembalikan nama negara terkait pada permintaan

### Pengambilan Kordinat

`GeoIP2.``coords`(query)

Mengembalikan sebuah tuple kordinat dari (longitude, latitude).

`GeoIP2.``lon_lat`(query)

Mengembalikan sebuah tuple kordinat dari (longitude, latitude).

`GeoIP2.``lat_lon`(query)

Mengembalikan sebuah tuple kordinat dari (latitude, longitude),

`GeoIP2.``geos`(query)

Mengembalikan obyek `Point` terkait pada permintaan

## Pengaturan

### `GEOIP_PATH`

Sebuah string menentukan direktori dimana berkas data GeoIP ditempatkan. Pengaturan ini adalah diwajibkan meskipun secara manual ditentukan dengan kata kunci `path` ketika menginisialisasi obyek `GeoIP2`.

### `GEOIP_COUNTRY`

Namadasar untuk digunakan berkas data negara GeoIP. Nilai awal `'GeoLite2-Country.mmdb'`.

### `GEOIP_CITY`

Nama dasar digunakan untuk berkas data kota GeoIP. Awalan pada `'GeoLite2-City.mmdb'`.

## Pengecualian

exception `GeoIP2Exception`

  Pengecualian dimunculkan ketika sebuah kesalahan muncul dalam panggilan pada pustaka `geoip2` pokok.

Catatan kaki

[1] | GeoIP(R) adalah merek dagang terdaftar dari MaxMind, Inc.