Вы можете использовать простую команду PowerShell, чтобы узнать текущий публичный IP-адрес, который ваш компьютер Windows использует для доступа в Интернет. Существует большое количество онлайн-сервисов (сайтов), которые могут вернуть ваш текущий IP-адрес.

Вы можете разобрать содержимое веб-страницы любой популярной службы обнаружения IP-адресов с помощью команды Invoke-WebRequest. Но проще воспользоваться одной из веб-служб, которые просто возвращают IP-адрес в виде обычного текста или в формате JSON.

Можно использовать следующие веб-сайты:

  • http://ipinfo.io/ip
  • http://ifconfig.me/ip
  • http://icanhazip.com
  • http://ident.me

Например, чтобы узнать свой текущий публичный IP-адрес, с которого вы выходите в Интернет, откройте консоль PowerShell и выполните команду:

(Invoke-WebRequest -uri "http://ifconfig.me/ip").Content

Или используйте более короткую команду:

(curl ifconfig.me).content

Эта команда возвращает на консоль публичный IP-адрес, который используется для доступа в Интернет.

Или даже можно получить данные GeoIP (такие как страна, город, регион, почтовый индекс и GPS-координаты).

Invoke-RestMethod -Uri ('http://ipinfo.io/'+(Invoke-WebRequest -uri "http://ifconfig.me/ip").Content

Команда Invoke-WebRequest возвращает ошибку на компьютерах под управлением Windows с отключенным (деинсталлированным) Internet Explorer и на установках Windows Server Core:

The response content cannot be parsed because the Internet Explorer engine is not available, or Internet Explorer’s first-launch configuration is not incomplete.

В этом случае добавьте команду -UseBasicParsing параметр:

(Invoke-WebRequest -UseBasicParsing -uri "http://ifconfig.me/ip").Content

Или используйте встроенный класс WebClient:

$wc = new-object System.Net.WebClient
$wc.DownloadString("http://myexternalip.com/raw")

Вы также можете использовать службу OpenDNS, чтобы узнать свой внешний (белый) IP-адрес. Он настроен так, чтобы всегда возвращать IP-адрес, с которого поступил запрос myip.opendns.com. Чтобы определить свой публичный IP через DNS, можно использовать PowerShell:

Resolve-DnsName -Name myip.opendns.com -Server resolver1.opendns.com

Или из командной строки:

nslookup myip.opendns.com resolver1.opendns.com

получить мой публичный ip из opendns с помощью powershell

Вы должны знать, что в большинстве случаев полученный адрес не является реальным публичным («белым») IP вашего компьютера. Обычно это либо внешний IP-адрес маршрутизатора (при использовании NAT), либо динамический IP-адрес (выданный вашим провайдером), либо адрес прокси-сервера, настроенного в Windows и используемого для доступа в Интернет.

Узнайте, как аутентифицироваться на прокси-сервере с помощью PowerShell.