Геолокация с GeoIP2 ¶
Объект GeoIP2
представляет собой адаптацию библиотеки Python geoip2 от MaxMind . [1]
Чтобы иметь возможность выполнять геолокацию на основе IP-адреса, объекту GeoIP2
требуется библиотека Python geoip2 и один из наборов данных GeoIP Country
или City
в двоичном формате (файлы CSV не будут работать!). Восстановите файлы GeoLite2-Country.mmdb.gz
и GeoLite2-City.mmdb.gz
распакуйте их в каталог, соответствующий настройке GEOIP_PATH
.
Также рекомендуется установить библиотеку C libmaxminddb , чтобы 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
не требуются параметры, если он использует настройки по умолчанию. Однако, как минимум, этот параметр должен быть определен 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 , С. Значение по умолчанию равно 0 ( MODE_AUTO ). |
country |
Имя файла данных страны GeoIP. По умолчанию это GeoLite2-Country.mmdb . Присвоение значения этому параметру приводит к перегрузке значения настройки GEOIP_COUNTRY . |
city |
Имя файла данных городов GeoIP. По умолчанию это GeoLite2-City.mmdb . Присвоение значения этому параметру приводит к перегрузке значения параметра GEOIP_CITY . |
Добавлена поддержка путей path
типов pathlib.Path
.
Методы ¶
Создание ¶
-
classmethod
GeoIP2.
open
( путь , кеш ) ¶
Этот метод класса создает экземпляр объекта GeoIP из указанного пути к базе данных и настроек кеша.
Запрос ¶
Все следующие процедуры опроса принимают либо строку IP-адреса, либо полное доменное имя (FQDN). Например, '205.186.163.125'
и 'djangoproject.com'
являются допустимыми параметрами запроса.
-
GeoIP2.
city
( запрос ) ¶
Возвращает словарь информации о городе, соответствующем заданному запросу. Некоторые значения в словаре можно оставить неопределенными ( None
).
-
GeoIP2.
country
( запрос ) ¶
Возвращает словарь, содержащий страну и ее код, соответствующий заданному запросу.
-
GeoIP2.
country_code
( запрос ) ¶
Возвращает код страны, соответствующий заданному запросу.
-
GeoIP2.
country_name
( запрос ) ¶
Возвращает название страны, соответствующее заданному запросу.
Получение координат ¶
-
GeoIP2.
coords
( запрос ) ¶
Вернуть набор координат .(longitude, latitude)
-
GeoIP2.
lon_lat
( запрос ) ¶
Вернуть набор координат .(longitude, latitude)
-
GeoIP2.
lat_lon
( запрос ) ¶
Вернуть набор координат .(latitude, longitude)
-
GeoIP2.
geos
( запрос ) ¶
Возвращает объект, Point
соответствующий запросу.
Настройки ¶
GEOIP_PATH
¶
Строка или объект, pathlib.Path
указывающий каталог, в котором расположены файлы данных GeoIP. Этот параметр является обязательным, за исключением случая, когда вы указываете параметр вручную path
при инициализации объектов GeoIP2
.
pathlib.Path
Добавлена поддержка путей типов .
GEOIP_COUNTRY
¶
Базовое имя, используемое для файла данных страны GeoIP. 'GeoLite2-Country.mmdb'
по умолчанию.
GEOIP_CITY
¶
Базовое имя, используемое для файла данных городов GeoIP. 'GeoLite2-City.mmdb'
по умолчанию.