• 3.1
  • 5.0
  • 6.1
  • Версия документации: 3.2

Геолокация с помощью GeoIP2

The GeoIP2 object is a wrapper for the MaxMind geoip2 Python library. [1]

In order to perform IP-based geolocation, the GeoIP2 object requires the geoip2 Python library and the GeoIP Country and/or City datasets in binary format (the CSV files will not work!). Grab the GeoLite2-Country.mmdb.gz and GeoLite2-City.mmdb.gz files and unzip them in a directory corresponding to the GEOIP_PATH setting.

Кроме того, рекомендуется установить библиотеку C libmaxminddb, чтобы geoip2 мог использовать более высокую скорость библиотеки C.

Пример

Here is an example of its usage:

>>> 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. Следующие ключевые слова инициализации могут использоваться для настройки любых значений по умолчанию.

Аргументы ключевых слов

Описание

путь

Базовый каталог, в котором расположены данные GeoIP, или полный путь к тому, где расположены файлы данных города или страны (.mmdb). Предполагается, что в этом каталоге расположены наборы данных как по городу, так и по стране; переопределяет настройку GEOIP_PATH.

кэш

Настройки кэша при открытии наборов данных GeoIP. Может быть целым числом в (0, 1, 2, 4, 8), соответствующем настройкам API C API MODE_AUTO, MODE_MMAP_EXT, MODE_MMAP и GEOIP_INDEX_CACHE MODE_MEMORY соответственно. По умолчанию 0 (MODE_AUTO).

страна

Имя файла данных страны GeoIP. По умолчанию используется GeoLite2-Country.mmdb. Установка этого ключевого слова переопределяет настройку GEOIP_COUNTRY.

город

Имя файла данных города GeoIP. По умолчанию используется GeoLite2-City.mmdb. Установка этого ключевого слова переопределяет настройку GEOIP_CITY.

Методы

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

classmethod GeoIP2.open(path, cache)

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

Запрос

All the following querying routines may take either a string IP address or a fully qualified domain name (FQDN). For example, both '205.186.163.125' and 'djangoproject.com' would be valid query parameters.

GeoIP2.city(query)

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

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

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

GEOIP_COUNTRY

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

GEOIP_CITY

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

Исключения

exception GeoIP2Exception

The exception raised when an error occurs in a call to the underlying geoip2 library.

Сноски

Back to Top