Любой надежный API, доступный для определения города и страны пользователя по IP-адресу [закрыт]

Эй, ребята!--1-->

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

мой поиск в Google привел кhttp://ipinfodb.com/ip_location_api.php

Это кажется идеальным, но моя единственная забота-надежность этой службы. У google есть что-то подобное. Если вы знаете какие - либо другие бесплатные или платные API, которые помогают определить местоположение пользователя с его IP-адреса-пожалуйста, сообщите я знаю

спасибо

7 ответов


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


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

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

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

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


рассмотрите возможность использования 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>

другие функции



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


есть ли у google что-то подобное.

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

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

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

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

еще один сервис, который мне действительно нравится менее известен и OpenSource (он частично полагается на данные MaxMind). Я использовал его всего несколько раз, поэтому я не могу сказать, что это uptime, но мне очень нравится их 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? Вот это хороший пример, но вы можете пойти дальше (спросите их, если расположение правильное, и дать им возможность изменить его). Я знаю, что в твоем случае тебе нужно только Страна / город, но может быть другим людям это понадобится.


П. С. Ноября 2015. теперь, что telize.com стоит денег, чтобы использовать, я нашел другую услугу, которая в настоящее время бесплатна:

https://freegeoip.net/json/45.79.8.237
https://freegeoip.net/json/2600:3c00::f03c:91ff:fe98:c0f5

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