首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于IP地址的用户机器经纬度的精确获取

基于IP地址的用户机器经纬度的精确获取
EN

Stack Overflow用户
提问于 2015-06-20 06:16:36
回答 3查看 1.2K关注 0票数 1

在基于PHP的应用程序中,当用户基于IP地址登录到when应用程序时,我希望捕获用户计算机的位置。

我遵循了这个方法:

代码语言:javascript
运行
复制
$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:

代码语言:javascript
运行
复制
{
["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来获得所需的精确信息?谢谢您的回复。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-20 06:35:09

您可以使用MaxMind's GeoIP服务/数据库,它有两个版本: GeoIP2和(Legacy) GeoIP。它们提供免费数据库和商业数据库,后者更为准确。他们有一个Github上的GeoIP2 PHP旧式GeoIP包含在PHP中。

MaxMind GeoIP2演示页允许您输入IP地址并返回以下数据:

  1. 坐标(lat/lon)
  2. 国家代码(2个字母国家代码)
  3. 域名
  4. ISP
  5. 地点(城市、州、国家、大陆)
  6. 地铁代码
  7. 组织
  8. 邮政编码(例如邮政编码)

链接:

  1. MaxMind的GeoIP2和Legacy GeoIP产品页面
  2. GeoIP2演示页面(输入IP并获取结果)
  3. Github上的GeoIP2-php SDK
  4. GeoIP on PHP.net
票数 0
EN

Stack Overflow用户

发布于 2015-06-20 08:22:20

还有很多其他的服务。您可能想看看这个:IP地址中的经度和纬度值

票数 1
EN

Stack Overflow用户

发布于 2015-06-22 03:05:56

里奇,你可以使用IP2Location地理定位服务或数据库。它有两个版本: a) 商业和b) 精简版。他们在许多编程语言中都有编程API的开发人员页面。

有一个在线演示页面允许您使用单个IP地址获取以下数据:

  1. 地点(国家、州、城市)
  2. 坐标(纬度、经度)
  3. 标高
  4. 邮政编码
  5. 电话(国际直拨电话和区号)
  6. 域名
  7. ISP名称
  8. 时区
  9. 连接速度
  10. 气象站(气象站名称和代码)
  11. 移动运营商(跨国公司、mcc、品牌)
  12. 使用类型
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30950938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档