用户IP地址的位置和地区查找

3
我使用以下代码获取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":"India","region_code":"19","region_name":"Karnataka","city":"Bangalore","zipcode":"","latitude":12.9833,"longitude":77.5833,"metro_code":"","area_code":""}

我不知道为什么这个API在一些IP地址上显示空白区域?
我在我的页面中设置了一个重定向取决于区域。那么如何解决区域问题?
我从INTERNET收集虚拟IP地址,例如:http://myip.ms/view/cities/67445/IP_Addresses_Cochin.html 有谁可以帮我找到解决方案。
3个回答

1

IPinfo 的结果如下:

117.253.168.187

curl https://ipinfo.io/117.253.168.187/json

{
  "ip": "117.253.168.187",
  "city": "Dharwad",
  "region": "Karnataka",
  "country": "IN",
  "loc": "15.4601,75.0078",
  "org": "AS9829 National Internet Backbone",
  "postal": "580009",
  "timezone": "Asia/Kolkata"
}

122.166.65.125

curl https://ipinfo.io/122.166.65.125/json

{
  "ip": "122.166.65.125",
  "hostname": "abts-kk-static-125.65.166.122.airtelbroadband.in",
  "city": "Bengaluru",
  "region": "Karnataka",
  "country": "IN",
  "loc": "12.9719,77.5937",
  "org": "AS24560 Bharti Airtel Ltd., Telemedia Services",
  "postal": "560002",
  "timezone": "Asia/Kolkata"
}

在IPinfo的免费套餐中,每月最多可获得50,000个请求,您可以获取所有需要基于地区重定向的字段,例如:

  • 城市
  • 地区
  • 国家
  • 纬度和经度

您可以通过以下方式使用我们的服务:


1
这是因为我的免费地理位置查询网站freegeoip.net对IP地址117.253.168.187的区域信息不完整。我也尝试了很多IP到位置的工具,只有付费的一个效果良好。你可以使用http://www.ip2location.com/demo

1

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

您可以在免费计划中每月使用30K个请求(每天1K个请求),并享有与付费计划相同的所有位置功能。

以下是它们用于测试 IP定位 和完整 文档 的链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接