【发布时间】: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的结果保存在一个变量中并对其进行解析,而不是导致两次网络延迟。
标签: shell unix terminal ip-geolocation freegeoip