使用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获取经纬度的主要内容,如果未能解决你的问题,请参考以下文章