2010-03-02 53 views
19

Heyy家伙提供任何可靠的API来确定用户所在的城市和国家从IP地址

我想检查是否有人可靠的API,我们可以用它来确定他的IP地址用户所在的城市和国家的了解。

我在谷歌搜索导致http://ipinfodb.com/ip_location_api.php

这似乎完美的,但我唯一担心的是这种服务的可靠性。 谷歌是否有这样的事情。 如果您知道任何其他的免费或付费的API,以帮助从他的IP确定用户的位置 - 请让我知道

感谢

+1

从IP获取城市/国家:你的城市(https://ipapi.co/city /),[贵国](https://ipapi.co/country/), [城市IP 8.8.8.8](https://ipapi.co/8.8.8.8/city/),[IP国家8.8.8.8](https://ipapi.co/8.8.8.8/country/) – user4150760 2016-06-02 07:22:58

+0

** ipinfodb.com **,你在2010年一直质疑的服务,仍然在线并且实际工作蛮好的(一直在使用它) – 2017-09-07 07:56:40

回答

7

我用http://www.hostip.info/,发现它真的很不错。

+0

感谢codaddict - 让我检查一下 – Gublooo 2010-03-02 10:45:47

+2

刚刚检查IP使用2年。它甚至无法找到我的国家。不知道这是否适合国际查找...... – AlexeyVMP 2014-07-23 07:24:12

+0

我发现一个http://ip-api.com/docs/api:json非常好:) – thinklinux 2015-06-28 20:26:12

5

每个IP地理位置取决于ISP提交的记录。这绝不会是完全可靠的,因为许多ISP提交自己的办公地址而不是其可能位于不同城市甚至国家的子网的物理位置。

+0

谢谢SF - 我可能使用了错误的术语 - 当我的意思是可靠 - 我的意思是说这项服务应该很快,而且没有太多停机时间。我明白我们不能100%正确地确定位置。这只是为用户预先填写表格,如果城市/国家出错,他可以更改它。 – Gublooo 2010-03-02 10:41:57

3

从某种意义上说,你不能可靠地知道用户的位置。使用其他答案提供的技巧可以为您提供IP的地理位置,但无法知道美国纽约的IP地址是不是通过某人到伦敦,英国的某个人的VPN访问的,或者无论是否有人使用类似Tor的匿名服务。

+2

谢谢弗兰克 - 我可能使用了错误的术语 - 当我的意思是可靠时 - 我的意思是说服务应该快速而不是有很多停机时间。我明白我们不能100%正确地确定位置。这只是为用户预先填写表格,如果城市/国家出错,他可以更改它。 – Gublooo 2010-03-02 10:46:07

11

考虑使用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> 

其他选项

+0

唯一的问题是它有一个限制。此外,你可以被阻止。 – Yusuf 2016-08-03 16:55:57

4

谷歌有这样的东西。

不,Google不提供类似此服务。 (请注意,这里声称它提供它的答案导致无处)。

任何其他免费或付费的API,以帮助从 他的IP

首先确定的用户的位置就很难谈论这样的服务的可靠性。大多数服务依靠ISP来获取他们的数据,而ISP并不总是提供可靠的数据。此外,因为我假设你基本上关心用户的位置(而不是他的IP所属的位置),用户可以决定通过VPN,Tor或其他匿名者隐藏他的位置。

在您的一些意见中,我已经看到,可靠性意味着API提供商的正常运行时间。如果是这样,比我推荐MaxMind's GeoIP2。首先,我已经很长时间看过这个网站,他们经常更新(最后更新2014年4月1日),而且如果您对停机时间如此害怕 - 您可以download their database并且不要依赖它们(它们也是自由)。

我实际上喜欢is less known and opensource(它部分依赖于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 geolocation来问他们?这里是一个nice example,但你可以走得更远(问他们是否位置正确,并给他们改变它的能力)。我知道,在你的情况下,你只需要国家/城市,但可能会有其他人需要它。


P.S. 2015年十一月现在telize.com花钱使用,我发现了另一个服务,是目前免费:

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

目前我使用'freegeoip.net'你也可以尝试:[geoplugin.net](http://www.geoplugin.net/json.gp?ip=20.20.20.20),可能会帮助某人。 – stom 2015-11-23 06:29:42

+0

你能否确认我是否有任何可以提供给定IP地址的国家和国家代码的谷歌服务。 – Yusuf 2016-08-03 17:57:44

相关问题