【问题标题】:Obtaining latitude and longitude from shell using freegeoip使用freegeoip从shell获取经纬度
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 2010-12-02
    • 2019-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多