如何在终端中获取IP地址的地理位置?


21

是否可以在终端中获取IP地址的地理位置?

不确定IP地址中的数字是什么意思,但是背后必须有一些逻辑,因此查找起来不会那么难。


您想要IP的地理位置?iplocation.net
Finduilas



1
同样,关于您的后一个主张,公共IP地址值与地理位置之间没有强制的相关性。公司和组织租赁IP块;他们可以随心所欲地与他们合作。
皮质

Answers:


26

您可以执行此操作,而不必安装任何其他应用程序或软件。只需使用命令curl和免费的geo ip网站http://freegeoip.app即可

在终端中执行以下命令(在此示例中,我使用的是Apple的IP):

curl https://freegeoip.app/xml/17.178.96.59

您将以XML格式获取结果:

<Response>
    <IP>17.178.96.59</IP>
    <CountryCode>US</CountryCode>
    <CountryName>United States</CountryName>
    <RegionCode>CA</RegionCode>
    <RegionName>California</RegionName>
    <City>Cupertino</City>
    <ZipCode>95014</ZipCode>
    <TimeZone>America/Los_Angeles</TimeZone>
    <Latitude>37.3042</Latitude>
    <Longitude>-122.0946</Longitude>
    <MetroCode>807</MetroCode>
</Response>

您甚至可以使用域名而不是IP发出相同的命令:

curl https://freegeoip.app/xml/apple.com

其他格式...

freegeoip.app还支持CSV,JSON和JSONP

CSV: curl https://freegeoip.app/csv/apple.com

17.178.96.59,US,United States,CA,California,Cupertino,95014,America/Los_Angeles,37.30,-122.09,807

JSON: curl https://freegeoip.app/json/apple.com

{"ip":"17.178.96.59","country_code":"US","country_name":"United States","region_code":"CA","region_name":"California","city":"Cupertino","zip_code":"95014","time_zone":"America/Los_Angeles","latitude":37.3042,"longitude":-122.0946,"metro_code":807}

要检查自己的IP ...

只需省略ip或域:

curl https://freegeoip.app/xml/


7
注意:将IP地址链接到地理位置并不是一件容易的事。尽管大多数地址都是可靠的,但是当查找时,有数百万个地址可以解析到一个大致的位置,例如城市的中心,甚至是整个国家的中部地区。有一篇有趣的文章,关于堪萨斯州中部的一个随机农场如何成为滥用和刑事调查的目标,因为主要的地理定位服务在其农场上放置了“美国的一般位置”标志。fusion.net/story/287592/internet-mapping-glitch-kansas-farm是该文章的链接。
恩扎尔

2
该API终结点已弃用,将于2018年7月1日停止工作。有关更多信息,请访问:github.com/apilayer/freegeoip#readme <
DeprecationMessage

看起来新的“ freegeoip.app”可以按预期工作。“ freegeoip.net”已弃用
dwightk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.