GeoIP2によるジオロケーション¶
The GeoIP2
object is a wrapper for the MaxMind geoip2 Python
library. [1]
IP ベースのジオロケーションを実行するために、 GeoIP2
オブジェクトには、バイナリ形式の GeoIP Country
および City
データセットと、geoip2 Python パッケージが必要です (CSV ファイルは使えません!)。これらは、例えば MaxMind や DB-IP のウェブサイトからダウンロードできます。 GeoLite2-Country.mmdb.gz
および GeoLite2-City.mmdb.gz
ファイルを取得し、これらを GEOIP_PATH
設定に対応するディレクトリに解凍してください。
また、geoip2
が C ライブラリの高速な処理速度を活用できるようにするために、 libmaxminddb C library をインストールすることをおすすめします。
カスタマイズ例¶
以下はその使用例です:
>>> from django.contrib.gis.geoip2 import GeoIP2
>>> g = GeoIP2()
>>> g.country("google.com")
{'continent_code': 'NA',
'continent_name': 'North America',
'country_code': 'US',
'country_name': 'United States',
'is_in_european_union': False}
>>> g.city("72.14.207.99")
{'accuracy_radius': 1000,
'city': 'Mountain View',
'continent_code': 'NA',
'continent_name': 'North America',
'country_code': 'US',
'country_name': 'United States',
'is_in_european_union': False,
'latitude': 37.419200897216797,
'longitude': -122.05740356445312,
'metro_code': 807,
'postal_code': '94043',
'region_code': 'CA',
'region_name': 'California',
'time_zone': 'America/Los_Angeles',
'dma_code': 807,
'region': 'CA'}
>>> 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)'
API リファレンス¶
GeoIP
オブジェクトにはデフォルトの設定を使用するため任意のパラメータは必要ありません。ただし、最低限、GEOIP_PATH
設定を設定して、GeoIP データセットの場所のパスを指定する必要があります。次の初期化キーワードを使用して、デフォルトの設定をカスタマイズできます。
キーワード引数 |
説明 |
---|---|
|
GeoIP データが配置されているベースディレクトリまたは都市や国のデータファイル ( |
|
GeoIP データセットをオープンする際のキャッシュ設定。それぞれ |
|
GeoIP 国データファイルの名前。デフォルトは |
|
GeoIP 都市データファイルの名前。デフォルトは |
メソッド¶
インスタンス化¶
このクラスメソッドは、指定されたデータベース・パスと指定されたキャッシュ設定から GeoIP オブジェクトをインスタンス化します。
バージョン 5.1 で非推奨: Use the GeoIP2()
constructor instead.
クエリ¶
All the following querying routines may take an instance of
IPv4Address
or IPv6Address
, a string IP
address, or a fully qualified domain name (FQDN). For example,
IPv4Address("205.186.163.125")
, "205.186.163.125"
, and
"djangoproject.com"
would all be valid query parameters.
与えられたクエリの都市情報の辞書を返します。辞書内の値のうち、一部は未定義 (None
) の場合があります。
指定されたクエリの国コードと国を含む辞書を返します。
クエリに対応する国コードを返します。
クエリに対応する国名を返します。
座標の取得¶
(経度, 緯度) の座標タプルを返します。
バージョン 5.1 で非推奨: Use GeoIP2.lon_lat()
instead.
(経度, 緯度) の座標タプルを返します。
(緯度, 経度) の座標タプルを返します。
クエリに対応する Point
オブジェクトを返します。
設定¶
GEOIP_PATH
¶
文字列または pathlib.Path
で、GeoIP データファイルがあるディレクトリを指定します。この設定は、 GeoIP2
オブジェクトを初期化する際に path
キーワードで手動で指定しない限り 必須 です。
GEOIP_COUNTRY
¶
GeoIP 国データファイルに使用するベース名。デフォルトは 'GeoLite2-Country.mmdb'
です。
GEOIP_CITY
¶
GeoIP 都市データファイルに使用するベースネーム。デフォルトは 'GeoLite2-City.mmdb'
.
例外¶
- exception GeoIP2Exception[ソース]¶
The exception raised when an error occurs in the
GeoIP2
wrapper. Exceptions from the underlyinggeoip2
library are passed through unchanged.
脚注