在基于PHP的应用程序中,当用户基于IP地址登录到when应用程序时,我希望捕获用户计算机的位置。
我遵循了这个方法:
$url = "http://freegeoip.net/json/$ip";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$data = curl_exec($ch);
curl_close($ch);我得到的是纬度和经度值,但这些不是精确的,而是绝对的。在响应中,我得到了这样的JSON:
{
["ip"]=> string(11) "59.90.210.9"
["country_code"]=> string(2) "IN"
["country_name"]=> string(5) "India"
["region_code"]=> string(0) ""
["region_name"]=> string(0) ""
["city"]=> string(0) ""
["zip_code"]=> string(0) ""
["time_zone"]=> string(12) "Asia/Kolkata"
["latitude"]=> int(20)
["longitude"]=> int(77)
["metro_code"]=> int(0)
} 没有城市没有拉链什么都没有。是否有更好的API来获得所需的精确信息?谢谢您的回复。
发布于 2015-06-20 06:35:09
您可以使用MaxMind's GeoIP服务/数据库,它有两个版本: GeoIP2和(Legacy) GeoIP。它们提供免费数据库和商业数据库,后者更为准确。他们有一个Github上的GeoIP2 PHP和旧式GeoIP包含在PHP中。。
MaxMind GeoIP2演示页允许您输入IP地址并返回以下数据:
链接:
发布于 2015-06-20 08:22:20
还有很多其他的服务。您可能想看看这个:IP地址中的经度和纬度值
发布于 2015-06-22 03:05:56
里奇,你可以使用IP2Location地理定位服务或数据库。它有两个版本: a) 商业和b) 精简版。他们在许多编程语言中都有编程API的开发人员页面。
有一个在线演示页面允许您使用单个IP地址获取以下数据:
https://stackoverflow.com/questions/30950938
复制相似问题