Смотря на реализацию лучшая геолокация с Python.
Hostip.info - это проект с открытым исходным кодом, целью которого является создание/поддержание базы данных отображения IP-адресов на города. На их странице about объясняются источники данных, используемые для наполнения этой базы.
Используя HostIP, есть два способа получить данные о местоположении по IP-адресу:
У них также есть хорошо разработанный и простой в использовании RESTFUL API: просто передайте свой ip-адрес после i***p=*** в строке запроса GET):
import urllib
response = urllib.urlopen('http://api.hostip.info/get_html.php?ip=12.215.42.19&position=true').read()
print(response)
Во-вторых, сайт проекта также предоставляет свою полную базу данных для загрузки.
Это не либа Python. Но http://ipinfodb.com/ предоставляет веб-сервис, который может быть легко обернут кодом Python, например, с помощью urllib.
http://api.ipinfodb.com/v3/ip-city/?key=<your_api_key>&ip=74.125.45.100
http://api.ipinfodb.com/v3/ip-country/?key=<your_api_key>&ip=74.125.45.100
Вам нужно запросить бесплатный ключ API. Подробности см. в API doc.
Вы можете найти эти модули полезными: MaxMind GeoIP и его чистая версия , а также pytz .