Как получить внешний IP-адрес (через NAT) из командной строки Windows?

Команда «ipconfig» Windows может отображать только параметры с интерфейсов Ethernet с моей машины (даже с аргументом ipconfig /all ). Он может отображать подробную информацию об интерфейсе, но он никогда не покажет мне мой внешний IP-адрес в сети NAT .

Ipconfig / all - скриншот Windows

  • Ярлык для открытия cmd.exe в определенном месте
  • Как запустить скрипт bash за пределами терминала?
  • Разрешение Отказано в выполнении сценария python из samba share
  • Как заставить вывод в «Format-Table» для пользовательского PSObject БЕЗ использования файла .format.ps1xml?
  • Автоматически запускать сценарий при входе в Windows
  • Запуск сценария Windows 8 при запуске
  • Однако есть несколько веб-сайтов, таких как «Что такое мой IP-адрес», который может получить и показать мой внешний IP-адрес. Поэтому мне интересно, можно ли получить это значение извне? Должен ли я ожидать, что есть какой-то способ получить эту информацию из командной строки на моей локальной машине …

    Мне нужно получить это значение для входа в приложение, которое я делаю с VBScript . Есть ли способ сделать это, из cmd в Windows?

  • Команда Windows для отображения всех IP-адресов
  • Почему dd копирует только 128 байтов из / dev / random, когда я запрашиваю больше?
  • CMD не обновляет переменные среды даже при перезапуске ОС
  • Использовать командную строку для отображения отключенных сетевых интерфейсов в Windows? (Мобильная широкополосная связь и регулярные соединения)
  • Как автоматически удалить исходные файлы после шифрования с помощью GPG?
  • Изменить шрифт для не-устаревшей командной строки в Windows 10 с не-ASCII-кодировкой - Свойства по умолчанию?
  • 8 Solutions collect form web for “Как получить внешний IP-адрес (через NAT) из командной строки Windows?”

    Теперь, используя предоставленный сайт Oliver, это можно сделать в VBScript.

     Dim o Set o = CreateObject("MSXML2.XMLHTTP") o.open "GET", "http://ifconfig.me/ip", False o.send WScript.StdOut.Write o.responseText 

    Аналогичный метод для PowerShell.

    Проблема в том, что это не ваш IP-адрес. Это IP-адрес вашего маршрутизатора.

    Таким образом, вы никогда не сможете получить его, не проходя свой маршрутизатор. И самый простой способ – просто заставить маршрутизатор получить веб-сайт для вас (как вы уже заметили). Поскольку маршрутизатор будет использовать свой IP-адрес для извлечения этого сайта.

    При этом вы можете сделать это легко, используя ifconfig.me/ip . Теперь, если у вас есть curl , вы уже сделали, если нет: Wget / cURL альтернатива, родная Windows?

    Создайте скрипт VB для работы на досуге.

    Введите это в txt-файл:

     Option Explicit Dim http : Set http = CreateObject( "MSXML2.ServerXmlHttp" ) http.Open "GET", "http://icanhazip.com", False http.Send Wscript.Echo http.responseText 'or do whatever you want with it Set http = Nothing 

    Закройте txt-файл и переименуйте его в ip.vbs (сохраните его в C: для этого примера)

    В окнах открыть окно dos (запустить cmd) ( ha! Я просто понял, если вы поменяете, что он будет запущен dmc !! )

    Убедитесь, что вы находитесь в c: / (если нет, введите c: и нажмите enter, затем cd .. и введите несколько раз, пока не увидите C:>)

    В приглашении типа dos:

     cscript ip.vbs 

    И вы мгновенно увидите свой внешний IP-адрес.

    Если вы поместите файл vbs на ключ usb или что-то (и не забудьте запустить cscript ip.vbs в приглашении dos – но убедитесь, что вы находитесь в том же каталоге, что и файл ip.vbs), вы можете взять это с собой Где бы вы ни находились и запускать файл .vbs на любом компьютере, чтобы увидеть их внешний IP-адрес.

    Еще одно замечание: строка с адресом для icanhazip.com может быть изменена на любое из следующего:

     http://myip.dnsomatic.com http://whatismyip.org http://icanhazip.com http://www.whatismyip.com/automation/n09230945.asp http://externip.com 

    Edit, вы также можете запустить файл ip.vbs в окнах, не перейдя в окно dos, и он просто появится в небольшом всплывающем окне.

    Чтобы получить внешний IP-адрес, вам нужно спросить что-то вне сети и сообщить ему, что ваш IP-адрес «появится» для него. Это можно сделать с помощью сценариев, запросив страницу, на которой легко разобрать результат и получить от него IP-адрес, но в Windows нет инструмента, встроенного в Windows, и вы можете просто рассказать вам, что такое внешний IP-адрес. Вам нужно будет написать его самостоятельно или найти и загрузить.

    Я наткнулся на этот сайт, когда искал эквивалент PowerShell, и я думал, что буду делиться этой командой, если кто-нибудь еще будет искать:

     Invoke-WebRequest ifconfig.me/ip 

    Более подробная информация доступна здесь, если они вам понадобятся – http://jfrmilner.wordpress.com/2012/12/22/powershell-quick-tip-03-whats-my-external-ip-address-windows-command-line/

    Используя что-то вроде DynDNS для присвоения IP-адреса DHCP имени домена, вы можете выполнить nslookup или ping (если ваш маршрутизатор настроен на ответ), ваше доменное имя и извлечь из него IP-адрес.

    Единственной другой утилитой Windows является traceroute , но она будет показывать только исходящий шлюз, к которому вы подключаетесь, а не IP-адрес вашего маршрутизатора, который подключается к этому шлюзу.

    Изменить: поскольку для извлечения строки IP-адреса требуется немного разбора, а ifconfig.me имеет приятный разреженный ответ, вот немного варианта сценария Боба, функция может проверить отсутствие ответа и вернуть Хороший чистый IP-адрес для использования в скрипте, если сервер включен.

     wscript.echo WAN_IP() function WAN_IP() set obj = createobject("Microsoft.XMLHTTP") call obj.open("get", "http://ifconfig.me/ip", false) obj.send() strresponse = obj.responsetext set obj = nothing if strresponse <> "" then strIP = strresponse else strIP = "Unavailable" end if WAN_IP = trim(strIP) end function 

    Если ваш маршрутизатор поддерживает Universal plug & Play (UPnP), вы можете запросить его IP-адрес (ы).

    В Windows вы можете запрашивать такую ​​информацию с помощью WMI и из командной строки с помощью инструмента WMIC.

    Как уже говорили другие, вам нужно полагаться на внешнюю службу. Я бы порекомендовал http://www.externalip.net

    Вы можете использовать http://api.externalip.net/ip, чтобы получить ip в текстовом формате. Он оказался быстрым и надежным, плюс он имеет неограниченное использование.

    Давайте будем гением компьютера.