使用 freegeoip 从 shell 获取经纬度

Obtaining latitude and longitude from shell using freegeoip

我正在尝试使用来自 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 与位置无关,因此 freegeoip.net 不检索任何内容。使用 public ip 而不是私有 ip 可以解决问题。