Я опубликовал это в другом вопросе, который был похоронен, но связан здесь:
#!/usr/bin/env python
from urllib2 import urlopen
from contextlib import closing
import json
# Automatically geolocate the connecting IP
url = 'http://freegeoip.net/json/'
try:
with closing(urlopen(url)) as response:
location = json.loads(response.read())
print(location)
location_city = location['city']
location_state = location['region_name']
location_country = location['country_name']
location_zip = location['zipcode']
except:
print("Location could not be determined automatically")
Отправьте HTTP-запросы GET по адресу: freegeoip.net/ndomformat‹/ndomip_or_hostname}, чтобы получить вывод JSON, который Python может анализировать.
Я получаю следующие ключи JSON, которых должно быть достаточно для того, что вам нужно:
- ф
- country_code
- COUNTRY_NAME
- region_code
- REGION_NAME
- город
- почтовый индекс
- широта
- долгота
- metro_code
- код_город