Какой API, пакет или библиотека проще всего найти местоположение IP-адреса?

это мой сценарий. Я хочу иметь возможность написать скрипт на python, который при вводе IP-адреса просматривает этот IP-адрес в API и возвращает результат. Может ли кто-нибудь сказать мне хороший рабочий API поиска с кодом. Например, это hostip:

import urllib

response = urllib.urlopen('http://api.hostip.info/get_html.php?ip=12.215.42.19&position=true').read()

print(response)

Однако hostIP имеет очень маленькую базу данных и не может возвращать много местоположений.


person Community    schedule 10.02.2015    source источник
comment
здесь может быть не по теме!   -  person Nishant Nawarkhede    schedule 10.02.2015
comment
Дублирование stackoverflow.com/questions/2543018/   -  person stark    schedule 10.02.2015


Ответы (2)


Я добился больших успехов с freegeoip.net. Они предоставляют общедоступный (бесплатный) API, или вы можете запустить его на своем собственном сервере.

Простой пример кода:

import urllib
response = urllib.urlopen('http://freegeoip.net/json/1.2.3.4').read()
print(response)
person Donovan Solms    schedule 10.02.2015
comment
Большое спасибо. Идеальный простой ответ. Каким будет запрос urllib в python 4.3.2? - person ; 10.02.2015
comment
Извлечение URL-адресов в Python 3 должно дать вам то, что должно быть в Python 3 - person Donovan Solms; 10.02.2015

Вы можете взглянуть на userinfo.io.

Выдача GET http://api.userinfo.io/userinfos вернет вам всю информацию, которую вы запрашиваете. Также можно указать IP-адрес в параметрах: GET http://api.userinfo.io/userinfos?ip_address=888.888.888.888.

Ответ выглядит так:

{
  request_date: "2014-09-18T04:11:25.154Z",
  ip_address: "192.77.237.95",
  position: {
    latitude: 37.7758,
    longitude: -122.4128,
    accuracy: 3   // This is the accuracy radius, in kilometers
  },
  continent: {
    name: "North America",
    code: "NA",
  },
  country: {
    name: "United States",
    code: "US",
  },
  city: {
    name: "San Francisco",
    code: "94103"
  }
}
person Vincent Durmont    schedule 12.02.2015