Php 确定ip地址的可靠API';s城市和乡村

Php 确定ip地址的可靠API';s城市和乡村,php,ip-geolocation,Php,Ip Geolocation,我想要一个可靠的API,可以用来确定一个城市和国家的IP地址 我在谷歌上的搜索结果是。这似乎很完美,但我唯一关心的是这项服务的可靠性。谷歌有这样的产品吗 我正在寻找免费或付费的API来帮助从IP确定位置。我已经使用过并且发现它非常好。每个IP地理位置都取决于ISP提交的记录。这永远不会是完全可靠的,因为许多ISP提交其办公室的位置,而不是其子网的物理位置,这些子网可能位于不同的城市甚至国家。 谷歌提供免费服务从某种意义上说,你无法可靠地知道用户的位置。使用其他答案提供的提示将为您提供IP的地理位

我想要一个可靠的API,可以用来确定一个城市和国家的IP地址

我在谷歌上的搜索结果是。这似乎很完美,但我唯一关心的是这项服务的可靠性。谷歌有这样的产品吗


我正在寻找免费或付费的API来帮助从IP确定位置。

我已经使用过并且发现它非常好。

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


谷歌提供免费服务

从某种意义上说,你无法可靠地知道用户的位置。使用其他答案提供的提示将为您提供IP的地理位置,但无法知道美国纽约的IP地址不是由前往英国伦敦出差的人通过VPN访问的,或者是否有人正在使用匿名服务,如。

MaxMind拥有其ip2country和ip2city数据库的精简版:

如果你不介意自己托管数据库,它是免费的。 付费服务更准确

它们还提供用于查询的web服务,但这不是免费的:

考虑使用,它从一行PHP代码中提供了最多的信息,但每个请求都需要连接到geoplugin.com服务器(而且是免费的)

示例:

Json:

Xml:


74.125.236.174
200
山景
加利福尼亚州
650
807
美国
美国
NA
37.419201
-122.057404
加利福尼亚州
加利福尼亚
美元
$
$
1.
其他选择

谷歌有这样的产品吗

不,谷歌不提供类似的服务。(请注意,这里的答案声称它确实提供了信息,但没有任何结果)

帮助确定用户位置的任何其他免费或付费API 他的IP

首先,很难说这种服务的可靠性。大多数服务依赖ISP获取数据,ISP并不总是提供可靠的数据。此外,因为我假设您基本上关心用户的位置(而不是他的IP属于哪个位置),所以用户可以决定通过VPN、Tor或其他匿名器隐藏他的位置

在您的一些评论中,我看到“可靠”指的是API提供程序的正常运行时间。如果是这样的话,我会推荐。首先,我已经看到这个网站很长时间了,它们经常更新(最后一次更新是2014年4月1日),而且如果你害怕宕机,你可以也不要依赖它们(它们也是免费的)

另一个我真正喜欢的服务(它部分依赖于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"
}
我认为这两项服务足以为您的访客提供正常的信息。但有一件事很重要。如果你真的需要知道你的用户来自哪里,为什么不问问他们呢?这里有一个例子,但是你可以更进一步(询问他们位置是否正确,并让他们能够更改位置)。我知道在你的情况下,你只需要国家/城市,但其他人可能会需要它


p.S.2015年11月。既然telize.com的使用成本很高,我找到了另一项目前免费的服务:

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

谢谢SF-我可能用错了词-当我指的是可靠-我的意思是说服务应该很快,没有太多的停机时间。我知道我们永远无法100%准确地确定位置。这只是为用户预先填充表单,如果城市/国家不正确,用户可以更改表单。谢谢Frank-我可能使用了错误的术语-当我指的是可靠时-我的意思是说服务应该很快,没有太多停机时间。我知道我们永远无法100%准确地确定位置。这只是为用户预先填充表单,如果城市/国家错误,用户可以更改表单。只需检查使用了2年的IP即可。它甚至无法找到我的国家。不确定它是否适合国际查询…我发现其中一个非常好:)目前我使用的是
freegoip.net
你也可以试试:,可以帮助某人。你能确认我谷歌是否有任何服务可以提供给定Ip地址的国家/地区代码。从Ip获取城市/国家:,有点讽刺的是,你在2010年一直质疑的ipinfodb.com服务仍然在线,而且实际上运行得很好(我自己也一直在使用它)curl-d”“。唯一的问题是它有一个限制。此外,你可以被阻止。它使用https不起作用。
{
"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"
}
https://freegeoip.net/json/45.79.8.237
https://freegeoip.net/json/2600:3c00::f03c:91ff:fe98:c0f5