如何使用命令行获取计算机的互联网(IP 地址)位置?
例如,使用 curl 或 wget?
答案1
有一项服务提供此功能:ipinfo.io。
你可以使用 来调用它curl
。例如:
curl ipinfo.io
结果:
{
"ip": "...",
"hostname": "...",
"city": "...",
"region": "...",
"country": "...",
"loc": "...,...",
"org": "..."
}
还可以请求特定 IP 的信息curl ipinfo.io/216.58.194.46
::
{
"ip": "216.58.194.46",
"hostname": "dfw25s12-in-f14.1e100.net",
"city": "Mountain View",
"region": "California",
"country": "US",
"loc": "37.4192,-122.0574",
"org": "AS15169 Google Inc.",
"postal": "94043"
}
https 也可用:curl https://ipinfo.io/216.58.194.46
来源:http://xmodulo.com/geographic-location-ip-address-command-line.html
答案2
由于问题没有指定操作系统,因此可以使用 PowerShell curl
(实际上是的别名Invoke-WebRequest
)获取相同信息:
(curl ipinfo.io).Content
这将生成一个 JSON 字符串。要获取 JSON 表示的对象,请使用ConvertFrom-Json
:
curl ipinfo.io | ConvertFrom-Json
由于这是一个 PowerShell 对象,因此您可以轻松地从中获取特定字段。例如,此命令仅将外部 IP 作为字符串获取:
(curl ipinfo.io | ConvertFrom-Json).ip
请注意,该服务提供的地理信息并不是非常准确,但它确实能将我定位在 20 英里左右的范围内。ISP 信息似乎很可靠。
答案3
您还可以通过 PowerShell 使用:
Invoke-RestMethod http://ipinfo.io/json
命令输出已经为我们提供了 JSON 格式的位置
摘自:https://www.sysadmit.com/2019/01/windows-saber-ip-publica-PowerShell.html