Как узнать внешний IP адрес из консоли команд Windows?

26.04.2019 0 Автор GodKnowses

Как узнать внешний IP адрес из консоли cmd и Power Shell?

Иногда пользователю приходится обращаться к системе с целью узнать внешний IP адрес: тот , что получает компьютер, когда “выходит в свет”. Это именно тот адрес, к которому в текущем сеансе будет обращаться глобальный интернет. Такие запросы (по поводу IP адреса) характерны для тех, кто устанавливает сетевые настройки виртуальных машин, проверяет геопозицию и т.п.

Наиболее частым решением вопроса является обращение к внешним ресурсам при помощи браузеров. Смысл прост: вы посылаете пакет, нажав на кнопку ресурсов типа

whatismyipaddress

https://2ip.ru/

https://whoer.net/ru

те читают заголовки, фильтруют их и возвращают ответ. Всё просто.

НО

Нередко целью узнать внешний IP адрес является именно его сокрытие. В сети всё чаще блокируются ресурсы, администрация которых не желает принимать запросы со стороны “скомпрометированных” IP адресов и целых диапазонов. Нередки случаи блокировки со стороны государственных органов. Вобщем, всякие анонимайзеры, прокси-серверы, а также цепочки и браузеры типа Tor с целью обхода блокировки нам в помощь. Но есть ли возможность напрямую обратиться из Windows за внешний IP адресом? Предполагается, что похожая команда есть у консоли команд cmd и Power Shell Windows? Но знакомые всем вариации ipconfig с этим не справляются. Причиной тому роутер и сетевые настройки NAT, которые часто вас (а вы об том и не догадываетесь) спасают от проникновения в вашу систему со стороны слабо подготовленных злоумышленников. Так что же, обязательно лезть на какой-то сайт за своим же IP? Да нет.

Со времён MS DOS в Windows осталась целая куча утилит (в том числе и сетевых), полезность которых не растерялась и по сей день, а мощь с появлением Power Shell лишь усилилась. Так что к делу.

Как узнать внешний IP адрес из консоли команд cmd?

В этом варианте нам поможет утилита nslookup. При этом смысл происходящего не меняется: мы также обращаемся за информацией к внешнему ресурсу, и он также возвращает нам информацию от принятых им пакетов. Просто мы это сделаем минуя пакетные заголовки браузеров. И получим ответ сюда же, в консоль. И спросим мы не абы кого, а opendns.com/. Команда в консоли от имени администратора будет выглядеть так:

nslookup myip.opendns.com. resolver1.opendns.com

внешний ip адрес из консоли cmd

При этом будет использован DNS сервер resolver1.opendns.com с целью “перевести на понятный язык” имя хоста myip.opendns.com. , превратив его именно в тот адрес, который и существует в реальности. И главное – не профукайте “точку” в myip.opendns.com. – она не позволит приклеиться поисковым доменам, которые приведут ваш запрос “не туда”. В Линукс команда примет вид:

dig +short myip.opendns.com @resolver1.opendns.com

Впрочем, из Линукс после установки дополнительных скриптов можно добиваться и других результатов. Но об этом не здесь.

Как узнать внешний IP адрес из Power Shell?

Power Shell любой версии также с этим справится. Вызываем консоль PS от имени администратора и вводим последовательно две следующие команды:

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

Вот и результат:

внешний ip из power shell

P.S. Как некоторые догадались, подобные команды входят в состав инструментов, позволяющих работать удалённый компьютер. В удачно открытой сессии запущенного на стороне хоста шелла она позволяет раскрыть истинное местоположение компьютера, какими бы инструментами он не прикрывался и защищённо он себя не чувствовал.

Ещё способ: VBS скрипт

Этот вариант не попадает под заголовок статьи, однако в тему будет точно. Я предлагаю вам автоматизированный способ узнать свой внешний IP. В архиве находится скриптовый файл, который вам остаётся только скачать, разблокировать в Свойствах и запустить:

Скачать Внешний IP адрес компьютера 

внешний IP адрес через VBS скрипт

Успехов.