Spec-Zone.ru › Django 1.10

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

Новое в Django 1.9.

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

Для выполнения геолокации по IP-адресу, объекту GeoIP2 требуется библиотека geoip2 Python и наборы данных 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',
'country_code': 'US',
'country_name': 'United States',
'dma_code': 807,
'latitude': 37.419200897216797,
'longitude': -122.05740356445312,
'postal_code': '94043',
'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)'

GeoIP Настройки

GEOIP_PATH

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

GEOIP_COUNTRY

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

GEOIP_CITY

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

GeoIP 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 C соответственно. По умолчанию 0 (MODE_AUTO).
country Имя файла данных GeoIP о стране. По умолчанию GeoLite2-Country.mmdb. Установка этого ключевого слова переопределяет настройку GEOIP_COUNTRY.
city Имя файла данных GeoIP о городе. По умолчанию GeoLite2-City.mmdb. Установка этого ключевого слова переопределяет настройку GEOIP_CITY.

GeoIP Методы

Инициализация

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, соответствующий запросу.

Примечания

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

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.10/ref/contrib/gis/geoip2/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API