使用freegeoip从shell获取经纬度

Posted

技术标签:

【中文标题】使用freegeoip从shell获取经纬度【英文标题】:Obtaining latitude and longitude from shell using freegeoip 【发布时间】:2016-09-30 19:49:33 【问题描述】:

我正在尝试使用 shell 中的 freegeoip 获取纬度和经度。当我尝试以下命令时:

$ curl -s --get http://freegeoip.net/json/74.201.113.118 | grep -Po '(?<="latitude":)[^,]*'

$ curl -s --get http://freegeoip.net/json/74.201.113.118 | grep -Po '(?<="longitude":)[^,]*'

我能够获得一些值,但是每当我用自己的 IP 地址替换 IP 地址时,该命令只会输出 0。知道为什么吗?

【问题讨论】:

可能,您的位置不在他们的数据库中?位置在哪里?对于德国来说,它工作得很好。 哥斯达黎加,我猜它不在他们的数据库中。 :// 你用的是公网IP还是私网IP?我尝试了一个哥斯达黎加 ip 并且有数据。 freegeoip.net/json/201.199.180.130 我用的是私网ip,刚用公网试了下就可以了,谢谢大家的帮助! :) 如果您经常这样做,您可以将curl 的结果保存在一个变量中并对其进行解析,而不是导致两次网络延迟。 【参考方案1】:

问题在于使用私有 IP。由于私有 IP 与位置无关,因此 freegeoip.net 不会检索任何内容。使用公共 ip 而不是私有 ip 可以解决问题。

【讨论】:

以上是关于使用freegeoip从shell获取经纬度的主要内容,如果未能解决你的问题,请参考以下文章

如何根据IP地址获取用户机器的准确经纬度

如何从 MVC 中的 ip 地址获取格式化地址

如何使用python获取我们的确切位置(纬度和经度)?

使用 freegeoip 获取 IP 列表

如何使用 Laravel eloquent 根据经纬度从 mongodb 获取位置?

uniapp 小程序 获取地图经纬度 + 调起腾讯地图用法