Геолокация с GeoIP2

GeoIP2Объект является оболочкой для библиотеки MaxMind geoip2 Python . [1]

Для выполнения геолокации на основе IP GeoIP2объекту требуется библиотека Python geoip2, а также GeoIP Countryи / или City наборы данных в двоичном формате (файлы CSV не будут работать!). Захватите GeoLite2-Country.mmdb.gzи GeoLite2-City.mmdb.gzфайлы и распаковать их в директории , соответствующей 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

classGeoIP2 ( path = None , cache = 0 , country = None , city ​​= None )

Для GeoIPиспользования настроек по умолчанию объекту не требуются никакие параметры. Однако, по крайней мере, в GEOIP_PATHнастройках должен быть указан путь к местоположению ваших наборов данных GeoIP. Следующие ключевые слова инициализации могут использоваться для настройки любых значений по умолчанию.

Аргументы ключевых слов Описание
path Базовый каталог, в котором расположены данные GeoIP, или полный путь к месту .mmdbрасположения файлов данных о городе или стране ( ). Предполагается, что в этом каталоге находятся наборы данных по городу и стране; отменяет GEOIP_PATHнастройку.
cache Настройки кеша при открытии наборов данных GeoIP. Может быть целым числом в (0, 1, 2, 4, 8) , соответствующие MODE_AUTO, MODE_MMAP_EXT, MODE_MMAPи GEOIP_INDEX_CACHE MODE_MEMORYнастройки API C, соответственно. По умолчанию 0 ( MODE_AUTO).
country Имя файла данных страны GeoIP. По умолчанию GeoLite2-Country.mmdb. Установка этого ключевого слова отменяет GEOIP_COUNTRYустановку.
city Имя файла данных города GeoIP. По умолчанию GeoLite2-City.mmdb. Установка этого ключевого слова отменяет GEOIP_CITYустановку.

Методы

Создание экземпляра

classmethodGeoIP2.open ( путь , кеш )

Этот метод класса создает экземпляр объекта GeoIP из заданного пути к базе данных и заданных настроек кеша.

Запрос

Все следующие процедуры запросов могут принимать либо строковый IP-адрес, либо полное доменное имя (FQDN). Например, допустимыми параметрами запроса могут быть оба '205.186.163.125'и 'djangoproject.com'.

GeoIP2.city( запрос )

Возвращает словарь информации о городе по заданному запросу. Некоторые значения в словаре могут быть неопределенными ( None).

GeoIP2.country( запрос )

Возвращает словарь с кодом страны и страной для данного запроса.

GeoIP2.country_code( запрос )

Возвращает код страны, соответствующий запросу.

GeoIP2.country_name( запрос )

Возвращает название страны, соответствующее запросу.

Поиск координат

GeoIP2.coords( запрос )

Возвращает кортеж координат (долгота, широта).

GeoIP2.lon_lat( запрос )

Возвращает кортеж координат (долгота, широта).

GeoIP2.lat_lon( запрос )

Возвращает кортеж координат (широта, долгота),

GeoIP2.geos( запрос )

Возвращает Pointобъект, соответствующий запросу.

Настройки

GEOIP_PATH

Строка или pathlib.Pathуказание каталога, в котором расположены файлы данных GeoIP. Этот параметр является обязательным, если он не указан вручную с pathключевым словом при инициализации GeoIP2объекта.

GEOIP_COUNTRY

Базовое имя, которое будет использоваться для файла данных страны GeoIP. По умолчанию 'GeoLite2-Country.mmdb'.

GEOIP_CITY

Базовое имя, используемое для файла данных города GeoIP. По умолчанию 'GeoLite2-City.mmdb'.

Исключения

исключение GeoIP2Exception

Исключение возникает при возникновении ошибки при вызове базовой geoip2библиотеки.

Сноски

[1]GeoIP (R) - зарегистрированная торговая марка MaxMind, Inc.

Copyright ©2021 All rights reserved