
Как узнать внешний IP адрес из консоли команд Windows?
26.04.2019Как узнать внешний IP адрес из консоли cmd и Power Shell?
Иногда пользователю приходится обращаться к системе с целью узнать внешний IP адрес: тот , что получает компьютер, когда «выходит в свет». Это именно тот адрес, к которому в текущем сеансе будет обращаться глобальный интернет. Такие запросы (по поводу IP адреса) характерны для тех, кто устанавливает сетевые настройки виртуальных машин, проверяет геопозицию и т.п.
Наиболее частым решением вопроса является обращение к внешним ресурсам при помощи браузеров. Смысл прост: вы посылаете пакет, нажав на кнопку ресурсов типа
те читают заголовки, фильтруют их и возвращают ответ. Всё просто.
НО
Нередко целью узнать внешний IP адрес является именно его сокрытие. В сети всё чаще блокируются ресурсы, администрация которых не желает принимать запросы со стороны «скомпрометированных» IP адресов и целых диапазонов. Нередки случаи блокировки со стороны государственных органов. В общем, всякие анонимайзеры, прокси-серверы, а также цепочки и браузеры типа Tor с целью обхода блокировки нам в помощь. Но есть ли возможность напрямую обратиться из Windows за внешний IP адресом? Предполагается, что похожая команда есть у консоли команд cmd и Power Shell Windows? Но знакомые всем вариации ipconfig с этим не справляются. Причиной тому роутер и сетевые настройки NAT, которые часто вас (а вы об том и не догадываетесь) спасают от проникновения в вашу систему со стороны слабо подготовленных злоумышленников. Так что же, обязательно лезть на какой-то сайт за своим же IP? Да нет.
Со времён MS DOS в Windows осталась целая куча утилит (в том числе и сетевых), полезность которых не растерялась и по сей день, а мощь с появлением Power Shell лишь усилилась. Так что к делу.
Как узнать внешний IP из браузера?
Нет, ни по каким ссылкам переходить не будем. Цель — получить быстрый и ёмкий ответ. Без рекламы, вопросов и т.д. В адресной строке любого браузера набираем:
http://myexternalip.com/raw
Ответ:
Как узнать внешний IP адрес из консоли команд cmd?
В этом варианте нам поможет утилита nslookup. При этом смысл происходящего не меняется: мы также обращаемся за информацией к внешнему ресурсу, и он также возвращает нам информацию от принятых им пакетов. Просто мы это сделаем минуя пакетные заголовки браузеров. И получим ответ сюда же, в консоль. И спросим мы не абы кого, а opendns.com/. Команда в консоли от имени администратора будет выглядеть так:
nslookup myip.opendns.com. resolver1.opendns.com
При этом будет использован 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")
Вот и результат:
P.S. Как некоторые догадались, подобные команды входят в состав инструментов, позволяющих работать удалённый компьютер. В удачно открытой сессии запущенного на стороне хоста шелла она позволяет раскрыть истинное местоположение компьютера, какими бы инструментами он не прикрывался и защищённо он себя не чувствовал.
Ещё способ: VBS скрипт
Этот вариант не попадает под заголовок статьи, однако в тему будет точно. Я предлагаю вам автоматизированный способ узнать свой внешний IP. В архиве находится скриптовый файл, который вам остаётся только скачать, разблокировать в Свойствах и запустить:
Скачать Внешний IP адрес компьютера
Успехов.
Или так:
certutil.exe -urlcache -split -f «http://myexternalip.com/raw» %temp%\ip.txt > nul & type %temp%\ip.txt & del %temp%\ip.txt