
如何使用命令列取得電腦的網際網路(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