从用户IP地址查找位置和区域

时间:2014-09-12 05:56:14

标签: php geolocation location maps

使用此代码获取IP地址的位置。

  

$location = file_get_contents('http://freegeoip.net/json/'.'117.253.168.187');

当我提供IP地址 117.253.168.187 国家/地区列为正确的IN但该区域返回空值时,这是我的问题。

  

{"ip":"117.253.168.187","country_code":"IN","country_name":"India","region_code":"","region_name":"","city":"","zipcode":"","latitude":20,"longitude":77,"metro_code":"","area_code":""}

如果我将IP更改为 122.166.65.125 ,则会返回包含国家/地区的正确区域。

  

{ “IP”: “122.166.65.125”, “COUNTRY_CODE”: “IN”, “COUNTRY_NAME”: “印”, “REGION_CODE”: “19”, “REGION_NAME”: “卡纳塔克邦”, “城市”: “班加罗尔”, “邮政编码”: “”, “纬度”:12.9833, “经度”:77.5833 “METRO_CODE”: “”, “AREA_CODE”: “”}

我不知道为什么这个api在某些IP地址中显示空白区域?

我的页面中有重定向取决于地区。那么我该如何解决地区问题呢?

从INTERNET收集虚拟IP地址,例如:http://myip.ms/view/cities/67445/IP_Addresses_Cochin.html

任何人都可以帮助我寻找解决方案。

2 个答案:

答案 0 :(得分:1)

这是因为我的freegeoip.net没有IP 117.253.168.187的完整区域信息。 我也尝试了很多ip到位置,但只付​​了一个工作正常。您可以使用http://www.ip2location.com/demo

答案 1 :(得分:1)

freegeoip.net是免费的IP定位服务,在被IP Stack收购后已被弃用。我一直在使用ipgeolocation.io,它提供了所有IP地址的完整位置。

在免费计划中,您每月可以使用3万个请求(每天1000个请求),并且所有位置功能都与付费计划相同。

这是他们测试IP location和完整documentation的链接。