%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8%3F.png)
Как узнать местоположение компьютера в Интернете (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 миль или около того. Информация от интернет-провайдера кажется надежной.
решение3
Вы также можете использовать PowerShell:
Invoke-RestMethod http://ipinfo.io/json
Вывод команды уже даст нам местоположение в формате JSON
Извлечен из:https://www.sysadmit.com/2019/01/windows-saber-ip-publica-PowerShell.html