GeoIP2によるジオロケーションLink to this heading

GeoIP2 オブジェクトは MaxMind geoip2 Python library. [1] のラッパーです。

IP ベースのジオロケーションを実行するために、 GeoIP2 オブジェクトには、バイナリ形式の GeoIP Country および City データセットと、geoip2 Python パッケージが必要です (CSV ファイルは使えません!)。これらは、例えば MaxMindDB-IP のウェブサイトからダウンロードできます。 GeoLite2-Country.mmdb.gz および GeoLite2-City.mmdb.gz ファイルを取得し、これらを GEOIP_PATH 設定に対応するディレクトリに解凍してください。

また、geoip2 が C ライブラリの高速な処理速度を活用できるようにするために、 libmaxminddb C library をインストールすることをおすすめします。

カスタマイズ例Link to this heading

以下はその使用例です:

Python console
>>> 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,
'is_in_european_union': False,
'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)'

API リファレンスLink to this heading

class GeoIP2(path=None, cache=0, country=None, city=None)Link to this definition

GeoIP オブジェクトにはデフォルトの設定を使用するため任意のパラメータは必要ありません。ただし、最低限、GEOIP_PATH 設定を設定して、GeoIP データセットの場所のパスを指定する必要があります。次の初期化キーワードを使用して、デフォルトの設定をカスタマイズできます。

キーワード引数

説明

path

GeoIP データが配置されているベースディレクトリまたは都市や国のデータファイル (.mmdb) が配置されているフルパスを指定します。都市と国のデータセットがこのディレクトリに配置されていることを前提としており、 GEOIP_PATH 設定を上書きします。

cache

GeoIP データセットをオープンする際のキャッシュ設定。それぞれ MODE_AUTO, MODE_MMAP_EXT, MODE_MMAP, GEOIP_INDEX_CACHE MODE_MEMORY C API の設定に対応する (0, 1, 2, 4, 8) 整数を指定します。デフォルトは 0 (MODE_AUTO) です。

country

GeoIP 国データファイルの名前。デフォルトは GeoLite2-Country.mmdb です。このキーワードを設定すると GEOIP_COUNTRY の設定が上書きされます。

city

GeoIP 都市データファイルの名前。デフォルトは GeoLite2-City.mmdb です。このキーワードを設定すると GEOIP_CITY の設定が上書きされます。

メソッドLink to this heading

インスタンス化Link to this heading

classmethod GeoIP2.open(path, cache)Link to this definition

このクラスメソッドは、指定されたデータベース・パスと指定されたキャッシュ設定から GeoIP オブジェクトをインスタンス化します。

クエリLink to this heading

以下のクエリルーチンはすべて、IPアドレスか完全修飾ドメイン名 (FQDN) のどちらかを取ることができます。例えば、 '205.186.163.125''djangoproject.com' の両方が有効なクエリパラメータとなります。

GeoIP2.city(query)Link to this definition

与えられたクエリの都市情報の辞書を返します。辞書内の値のうち、一部は未定義 (None) の場合があります。

GeoIP2.country(query)Link to this definition

指定されたクエリの国コードと国を含む辞書を返します。

GeoIP2.country_code(query)Link to this definition

クエリに対応する国コードを返します。

GeoIP2.country_name(query)Link to this definition

クエリに対応する国名を返します。

座標の取得Link to this heading

GeoIP2.coords(query)Link to this definition

(経度, 緯度) の座標タプルを返します。

GeoIP2.lon_lat(query)Link to this definition

(経度, 緯度) の座標タプルを返します。

GeoIP2.lat_lon(query)Link to this definition

(緯度, 経度) の座標タプルを返します。

GeoIP2.geos(query)Link to this definition

クエリに対応する Point オブジェクトを返します。

設定Link to this heading

GEOIP_PATHLink to this heading

文字列または pathlib.Path で、GeoIP データファイルがあるディレクトリを指定します。この設定は、 GeoIP2 オブジェクトを初期化する際に path キーワードで手動で指定しない限り 必須 です。

GEOIP_COUNTRYLink to this heading

GeoIP 国データファイルに使用するベース名。デフォルトは 'GeoLite2-Country.mmdb' です。

GEOIP_CITYLink to this heading

GeoIP 都市データファイルに使用するベースネーム。デフォルトは 'GeoLite2-City.mmdb'.

例外Link to this heading

exception GeoIP2ExceptionLink to this definition

ベースとなる geoip2 ライブラリの呼び出しでエラーが発生した場合に発生する例外。

脚注