我试图从shell中获得纬度和经度。当我尝试以下命令时:
$ 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入口时,命令就只输出0。知道为什么吗?
发布于 2016-10-01 07:22:00
问题是使用私有ip。由于私有ip与位置无关,因此freegeoip.net不检索任何内容。使用公共ip代替私有ip解决了这一问题。
发布于 2022-10-09 20:46:45
我用自己的命令替换ip入口,命令只输出0。
我认为您正在传递您的私人IP地址,这就是为什么您没有得到任何具体的信息。
获取基于IP地址的位置数据的一个简单方法就是curling IPinfo:
curl ipinfo.io这将返回您的公共IP地址的信息,您不需要传递任何变量。答复:
{
"ip": "206.189.17.205",
"city": "London",
"region": "England",
"country": "GB",
"loc": "51.5085,-0.1257",
"org": "AS14061 DigitalOcean, LLC",
"postal": "EC1A",
"timezone": "Europe/London"
}IPinfo的API还支持特定字段作为端点:
curl ipinfo.io/loc这将只返回IP地址作为字符串/文本的位置,例如:
51.5085,-0.1257https://stackoverflow.com/questions/39799101
复制相似问题