Source

django-ipgeobase /

Filename Size Date modified Message
django_ipgeobase
110 B
953 B
1.0 KB
56 B
2.3 KB
0 B
1.1 KB

django-ipgeobase

django-ipgeobase - это приложение для определения региона (а также широты и долготы) в России по IP в Django

Внимание: версия работает пока что только для Django 1.2+

Установка

Проделываем в командной строке

$ hg clone http://bitbucket.org/satels/django-ipgeobase/
$ cd django-ipgeobase
$ python setup.py install

Потом следует добавить 'django_ipgeobase' в INSTALLED_APPS и выполнить

$ python manage.py syncdb

Настройка

Необязательные параметры (в settings.py):

  • IPGEOBASE_CODING - кодировка этого файла (по-умолчанию windows-1251, можно не менять).
  • IPGEOBASE_SOURCE_URL - ссылка на этот файл на сайте-источнике (по-умолчанию установлено, можно не менять)
  • IPGEOBASE_FILENAME - имя файла в скачиваемом архиве базы ipgeobase (по-умолчанию, "block_coord.db")
  • IPGEOBASE_SEND_MESSAGE_FOR_ERRORS - отправлять ли сообщения об ошибках на почту при обновлении (по-умолчание, True)

Использование

Для получения объекта ipgeobase (для определения региона)

from django_ipgeobase.models import IPGeoBase

ip = "212.49.98.48"

ipgeobases = IPGeoBase.objects.by_ip(ip)
if ipgeobases.exists():
    ipgeobase = ipgeobases[0]
    print ipgeobase.district #Округ (для указанного ip - Уральский)
    print ipgeobase.region #Регион (Свердловская область)
    print ipgeobase.city #Населенный пункт (Екатеринбург)
    print ipgeobase.ip_block #IP-блок, в который попали (212.49.98.0 - 212.49.98.255)
    print ipgeobase.start, ipgeobase.end #IP-блок в числовом формате
    print ipgeobase.latitude, ipgeobase.longitude #широта и долгота

Обновления базы

Чтобы обновить базу ipgeobase:

$ python manage.py ipgeobase_update