7

Как определить местонахождение компьютера в Интернете (IP-адрес) с помощью командной строки?

Например, используя curl или wget?

3 ответа3

9

Есть сервис, обеспечивающий это: 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"
}

Источник: http://xmodulo.com/geographic-location-ip-address-command-line.html

2

Поскольку в вопросе не указана ОС, вот как получить ту же информацию с помощью curl PowerShell (фактически псевдоним 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 кажется надежной.

0

Вы также можете использовать из PowerShell:

Invoke-RestMethod http://ipinfo.io/json

Вывод команды уже даст нам местоположение в JSON

Извлечено из: https://www.sysadmit.com/2019/01/windows-saber-ip-publica-PowerShell.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .