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.
Back to Top