GeoIP2を使用したジオロケーション—Djangoドキュメント

提供:Dev Guides
< DjangoDjango/docs/3.2.x/ref/contrib/gis/geoip2
移動先:案内検索

GeoIP2によるジオロケーション

GeoIP2 オブジェクトは、 MaxMind geoip2Pythonライブラリのラッパーです。 1

IPベースのジオロケーションを実行するには、 GeoIP2 オブジェクトに geoip2PythonライブラリとGeoIP Countryおよび/またはCity が必要です。バイナリ形式のデータセット(CSVファイルは機能しません!)。 GeoLite2-Country.mmdb.gzファイルとGeoLite2-City.mmdb.gzファイルを取得し、:setting: `GEOIP_PATH` 設定に対応するディレクトリに解凍します。

さらに、 libmaxminddb Cライブラリをインストールして、geoip2がCライブラリの高速化を活用できるようにすることをお勧めします。

その使用例を次に示します。

>>> 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リファレンス

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

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

キーワード引数 説明
path GeoIPデータが配置されているベースディレクトリ、または都市または国のデータファイル(.mmdb)が配置されているフルパス。 都市と国の両方のデータセットがこのディレクトリにあると想定しています。 :setting: `GEOIP_PATH` 設定を上書きします。
cache GeoIPデータセットを開くときのキャッシュ設定。 MODE_AUTOMODE_MMAP_EXTMODE_MMAP、およびGEOIP_INDEX_CACHE MODE_MEMORYそれぞれCAPI設定。 デフォルトは0(MODE_AUTO)です。
country GeoIP国データファイルの名前。 デフォルトはGeoLite2-Country.mmdbです。 このキーワードを設定すると、:setting: `GEOIP_COUNTRY` 設定が上書きされます。
city GeoIP都市データファイルの名前。 デフォルトはGeoLite2-City.mmdbです。 このキーワードを設定すると、:setting: `GEOIP_CITY` 設定が上書きされます。


メソッド

インスタンス化

classmethod GeoIP2.open(path, cache)

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


クエリ

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

GeoIP2.city(query)

指定されたクエリの都市情報の辞書を返します。 ディクショナリの値の一部が未定義である可能性があります(None)。

GeoIP2.country(query)

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

GeoIP2.country_code(query)

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

GeoIP2.country_name(query)

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


座標検索

GeoIP2.coords(query)

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

GeoIP2.lon_lat(query)

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

GeoIP2.lat_lon(query)

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

GeoIP2.geos(query)

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


設定

GEOIP_PATH

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


GEOIP_COUNTRY

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


GEOIP_CITY

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


例外

exception GeoIP2Exception
基になるgeoip2ライブラリの呼び出しでエラーが発生したときに発生する例外。

脚注

1
GeoIP(R)は、MaxMind、Inc。の登録商標です。