Надежный API для определения города и страны IP-адреса

Мне нужен надежный API, который можно использовать для определения города и страны по IP-адресу.

Мой поиск в Google привел к http://ipinfodb.com/ip_location_api.php. Это кажется идеальным, но меня беспокоит только надежность этого сервиса. В гугле есть что-то подобное?

Я ищу бесплатные или платные API, которые помогают определить местоположение по IP.


person Gublooo    schedule 02.03.2010    source источник
comment
Получить город/страну по IP-адресу: Ваш город, Ваша страна , Город для IP 8.8.8.8 , Страна для IP 8.8.8.8   -  person user4150760    schedule 02.06.2016
comment
Несколько иронично, что ipinfodb.com, сервис, о котором вы спрашивали еще в 2010 году, до сих пор работает в сети и работает нормально (сам пользовался им).   -  person aexl    schedule 07.09.2017
comment
developers.google.com/maps/documentation/geolocation/intro   -  person Zibri    schedule 25.04.2019


Ответы (7)


Я использовал http://www.hostip.info/ и нашел его действительно хорошим.

person codaddict    schedule 02.03.2010
comment
Только что проверил IP, который используется в течение 2 лет. Он даже не может определить местонахождение моей страны. Не уверен, что это хорошо для международного поиска... - person AlexeyVMP; 23.07.2014
comment
Я обнаружил, что один ip-api.com/docs/api:json действительно хорошо :) - person thinklinux; 28.06.2015

У MaxMind есть облегченная версия баз данных ip2country и ip2city: http://www.maxmind.com/app/geolitecity

http://www.maxmind.com/app/geolitecountry

Если вы не против разместить базу данных самостоятельно, это бесплатно. Платные услуги более точны.

Они также предоставляют веб-сервисы для запросов, но это не бесплатно: http://www.maxmind.com/app/web_services#country

person Kjetil Watnedal    schedule 02.03.2010

Рассмотрите возможность использования geoplugin, он предоставляет большую часть информации из одной строки PHP-кода, но требует подключения к серверу geoplugin.com для каждого запроса. (и это бесплатно).

Примеры:

Json: http://www.geoplugin.net/json.gp?ip=74.125.236.174

{
geoplugin_request: "74.125.236.174",
geoplugin_status: 200,
geoplugin_city: "Mountain View",
geoplugin_region: "CA",
geoplugin_areaCode: "650",
geoplugin_dmaCode: "807",
geoplugin_countryCode: "US",
geoplugin_countryName: "United States",
geoplugin_continentCode: "NA",
geoplugin_latitude: "37.419201",
geoplugin_longitude: "-122.057404",
geoplugin_regionCode: "CA",
geoplugin_regionName: "California",
geoplugin_currencyCode: "USD",
geoplugin_currencySymbol: "$",
geoplugin_currencySymbol_UTF8: "$",
geoplugin_currencyConverter: 1
}

XML: http://www.geoplugin.net/xml.gp?ip=74.125.236.174

<geoPlugin>
<script/>
<geoplugin_request>74.125.236.174</geoplugin_request>
<geoplugin_status>200</geoplugin_status>
<geoplugin_city>Mountain View</geoplugin_city>
<geoplugin_region>CA</geoplugin_region>
<geoplugin_areaCode>650</geoplugin_areaCode>
<geoplugin_dmaCode>807</geoplugin_dmaCode>
<geoplugin_countryCode>US</geoplugin_countryCode>
<geoplugin_countryName>United States</geoplugin_countryName>
<geoplugin_continentCode>NA</geoplugin_continentCode>
<geoplugin_latitude>37.419201</geoplugin_latitude>
<geoplugin_longitude>-122.057404</geoplugin_longitude>
<geoplugin_regionCode>CA</geoplugin_regionCode>
<geoplugin_regionName>California</geoplugin_regionName>
<geoplugin_currencyCode>USD</geoplugin_currencyCode>
<geoplugin_currencySymbol>&#36;</geoplugin_currencySymbol>
<geoplugin_currencySymbol_UTF8>$</geoplugin_currencySymbol_UTF8>
<geoplugin_currencyConverter>1</geoplugin_currencyConverter>
</geoPlugin>

Другие варианты

person Chandra Nakka    schedule 01.12.2012
comment
Единственная проблема в том, что у него есть ограничение. Более того, вас могут заблокировать. - person Yusuf; 03.08.2016
comment
Через https не работает. - person Billel Hacaine; 02.07.2018

http://www.ip2location.com/

У Google есть бесплатный сервис http://briancray.com/2009/05/29/find-web-visitors-location-javascript-google-api/

person Ravia    schedule 02.03.2010

Геолокация каждого IP зависит от записей, предоставленных интернет-провайдером. Это никогда не будет полностью надежным, потому что многие интернет-провайдеры указывают местоположение своего офиса вместо физического местоположения своих подсетей, которые могут находиться в другом городе или даже стране.

person SF.    schedule 02.03.2010
comment
Спасибо, С.Ф. - возможно, я использовал неправильный термин - когда я имел в виду надежный - я имел в виду, что обслуживание должно быть быстрым и не должно быть много времени простоя. Я понимаю, что мы никогда не сможем на 100% правильно определить местоположение. Это просто для предварительного заполнения формы для пользователя, которую он может изменить, если город/страна неверны. - person Gublooo; 02.03.2010

В некотором смысле вы не можете достоверно узнать местонахождение пользователя. Использование советов, которые дают другие ответы, даст вам геолокацию IP-адреса, но нет никакого способа узнать, что этот IP-адрес в Нью-Йорке, США, не используется через VPN кем-то в командировке в Лондоне, Великобритания, или использует ли кто-то службу анонимизации, такую ​​как Tor.

person Frank Shearar    schedule 02.03.2010
comment
Спасибо, Фрэнк - я, вероятно, использовал неправильный термин - когда я имел в виду надежный - я хотел сказать, что обслуживание должно быть быстрым и не должно быть много времени простоя. Я понимаю, что мы никогда не сможем на 100% правильно определить местоположение. Это просто для предварительного заполнения формы для пользователя, которую он может изменить, если город/страна неверны. - person Gublooo; 02.03.2010

Есть ли в гугле что-то подобное.

Нет, Google не предоставляет подобные услуги. (обратите внимание, что ответ здесь, который утверждает, что он его предоставляет, ведет в никуда).

Любые другие бесплатные или платные API, помогающие определить местоположение пользователя по его IP.

Во-первых, трудно говорить о надежности такого сервиса. Большинство сервисов полагаются на интернет-провайдера для получения своих данных, а интернет-провайдер не всегда предоставляет надежные данные. Более того, поскольку я предполагаю, что вас в основном заботит местонахождение вашего пользователя (а не то, к какому местоположению принадлежит его IP), пользователь может решить скрыть свое местоположение через VPN, Tor или другие анонимайзеры.

В некоторых ваших комментариях я увидел, что под надежным вы подразумеваете время безотказной работы поставщика API. Если да, то я бы порекомендовал MaxMind's GeoIP2. Во-первых, я давно вижу этот сайт, они довольно часто обновляются (последнее обновление 1 апреля 2014), кроме того, если вы так боитесь простоев - вы можете скачайте их базу данных и не полагайтесь на них (к тому же они бесплатны).

Другой сервис, который мне действительно нравится, менее известен и имеет открытый исходный код (частично опирается на данные MaxMind). Я использовал его всего несколько раз, поэтому не могу сказать о его работоспособности, но мне очень нравится их API. Это настолько просто, что проще придумать сложно:

http://www.telize.com/geoip/46.19.37.108 

или вот так

http://www.telize.com/geoip/2a02:2770::21a:4aff:feb3:2ee

даст тебе

{
"country":"Netherlands",
"dma_code":"0",
"timezone":"Europe\/Amsterdam",
"area_code":"0",
"ip":"46.19.37.108",
"asn":"AS196752",
"continent_code":"EU",
"isp":"Tilaa V.O.F.",
"longitude":5.75,
"latitude":52.5,
"country_code":"NL",
"country_code3":"NLD"
}

Я думаю, что этих двух сервисов достаточно, чтобы получить нормальную информацию для ваших посетителей. Но одна важная вещь. Если вам действительно нужно знать, откуда приходят ваши пользователи, почему бы не спросить их с помощью геолокации html5? Вот хороший пример, но вы можете пойти дальше (спросите их, правильно ли указано местоположение, и дайте им возможность изменить Это). Я знаю, что в вашем случае вам нужна только Страна/Город, но может быть и другим людям это понадобится.


P.S. Ноябрь 2015 г. Теперь, когда использование telize.com стоит денег, я нашел еще один бесплатный сервис:

https://freegeoip.net/json/45.79.8.237
https://freegeoip.net/json/2600:3c00::f03c:91ff:fe98:c0f5
person Salvador Dali    schedule 04.04.2014
comment
в настоящее время я использую freegeoip.net, вы также можете попробовать: geoplugin.net, может помочь кому-нибудь. - person Shaiju T; 23.11.2015
comment
Можете ли вы подтвердить мне, есть ли какая-либо служба Google, которая может предоставить код страны и страны для данного IP-адреса. - person Yusuf; 03.08.2016