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'
.