Похожие вопросы

Как запустить VLC как команду командной строки в windows [дубликат]
Перезапустить службу Windows из командной строки
Как добавить аргументы командной строки в аргументы командной строки в ярлыке Windows?
Как изменить яркость на дисплее CRT через командную строку Linux?
Переключатель RoboCopy для исключения папок верхнего уровня
Где можно получить программу командной строки SQLpackage?
Пакетный файл: скрыть результаты теста Ping
Как извлечь вложения из файлов EML с помощью командной строки Windows?
Класс процесса WIN32 для команды Powershell Get-WmiObject
Ошибка" службе профилей пользователей не удалось выполнить вход в систему". Отсутствие работы решения
Командная строка WinSat закрывается слишком быстро
Получить имя клиента RDP компьютер
Переименование подключенного сетевого диска с помощью CMD
Как определить пользователя и группу deamon в Ubuntu?
Запуск WinFlash из командной строки не интерпретирует аргументы

Команда Windows, возвращающая внешний IP-адрес

есть ли команда, с помощью которой я могу найти свой внешний IP-адрес моего маршрутизатора или моего маршрутизатора NATDSL и т. д., устраняя необходимость посещения whatsmyip.net или похожее.

5
задан Marcks Thomas
источник

13 ответов

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

(как подсказка, whatismyip.org предпочтительнее большинства других решений, так как он просто возвращает ваш IP в виде обычного текста - без лишнего текста, ссылок, изображений или другого мусора. Это было бы намного проще использовать в пользовательском сценарии, чем большинство других сайтов IP-обнаружения.)

13
отвечен nhinkle 2010-07-21 06:28:20
источник

вы можете использовать запрос DNS вместо HTTP запроса, чтобы узнать свой публичный IP:

C:\> nslookup myip.opendns.com. resolver1.opendns.com

Он использует resolver1.opendns.com dns-сервер для решения магической myip.opendns.com. имя код ip-адрес. (Примечание: трейлинг . при поиске предотвращает добавление доменов поиска, что может привести к неправильным результатам.)

версия Unix:

$ dig +short myip.opendns.com @resolver1.opendns.com
85
отвечен jfs 2016-06-01 18:23:46
источник

возьмите свою собственную копию curlС http://curl.haxx.se/download.html и только потом

curl "http://myexternalip.com/raw"

или используйте powershell:

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

(отказ от ответственности: http://myexternalip.com была создана мной)

26
отвечен akira 2016-06-26 08:16:39
источник

создайте файл с именем ip.vbs и скопируйте в него следующее:

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

выполнить с помощью

C:\>cscript ip.vbs

как nhinkle отметить лучше всего выбрать сайт, который возвращает только IP, а не HTML + реклама и т. д. like:

(источник: ранее http://externip.com/about)

6
отвечен hyperslug 2017-03-20 10:17:45
источник

Я сделал этот скрипт, чтобы сделать это несколько месяцев назад:

@echo off

:: WhatIsMyIP.cmd - returns public IP address
:: requires: wget.exe

if [%1]==[-h] goto :HELP
if [%1]==[--help] goto :HELP
if [%1]==[/?] goto :HELP

wget -q -O %temp%\MyIP http://www.whatismyip.com/automation/n09230945.asp
for /f "delims= " %%G in (%temp%\myip) do set PublicIP=%%G & del %temp%\MyIP
echo. & echo Your public IP address is %PublicIP% & echo.
if [%1]==[--clip] echo %PublicIP% | clip
goto :EOF

:HELP
echo. & echo Usage: whatismyip [--clip] & echo.
goto :EOF

:EOF

это дает вам возможность поместить IP-адрес в буфер обмена, и он устанавливает переменную среды - %PublicIP%.


БОЛЕЕ ПРОСТОЙ МЕТОД:

теперь я просто делаю так:

curl icanhazip.com

или...

curl icanhazip.com | clip

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

вам нужно cURL.

5
отвечен paradroid 2012-07-17 22:11:34
источник

С Powershell 3.0 (Windows 7 по умолчанию 2.0) вы можете использовать Invoke-WebRequest

Для IPv4:

$tmp =Invoke-WebRequest -URI http://myip.dnsomatic.com/
$tmp.Content

Для IPv6:

$tmp =Invoke-WebRequest -URI http://myexternalip.com/raw
$tmp.Content

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

и, конечно-как сайты меняются или их выходы изменить вы хотите, чтобы обновить это соответствующим образом. :)

5
отвечен Bradley Forney 2014-12-07 12:43:41
источник

это хорошо работает, я использую его в основном с psexec при проверке подключений клиентского компьютера.

nslookup myip.opendns.com resolver1.opendns.com
4
отвечен Antti Lagus 2015-04-23 08:25:29
источник

попробуйте это:

Не нужно никакое внешнее установленное програмное обеспечение.



@set @script=0 /*
  @echo off
    set @script=
    cscript //nologo //e:jscript "%~dpnx0"
  exit /b
*/

with (new ActiveXObject('Microsoft.XMLHTTP')) {
   open('GET', 'http://internet.yandex.ru/', false);
   send();

   WScript.echo(responseText.match(/IPv4:\s(\d+\.){3}\d+/g));
}
3
отвечен Filipe YaBa Polido 2013-12-05 15:40:30
источник

без сторонних программ трудно на Windows, как Telnet не поставляется по умолчанию, но, если он есть (XP) или включен (Windows Vista и выше), просто введите:

telnet curlmyip.com 80

экран будет мигать, и вы просто получите курсор... Следующий тип:

GET

заглавными буквами... затем вы увидите заголовки, а затем ваш ip (и извините, что я размыл его, просто показывая, где он будет!):

enter image description here

другие ответы здесь очевидно, работа, но, я пытаюсь держать вопрос о чем-то, что может быть использовано на любых окнах, без сторонних программ!

для Windows Vista и выше, вы можете установить telnet легко (и безопасно) через Programs and features, или используйте следующую команду:

pkgmgr /iu:”TelnetClient”
3
отвечен William Hilsum 2014-01-15 01:04:17
источник

можно использовать ifcfg.я. он поддерживает некоторые внутренние команды, которые поставляются с windows по умолчанию.

curl ifcfg.me
nslookup . ifcfg.me
telnet ifcfg.me
ftp ifcfg.me
finger @ifcfg.me
2
отвечен Eun 2015-05-13 14:40:59
источник

Я хотел бы иметь решение, которое работает для Windows без установки сторонних средств. Поэтому я взял powershell опция, которая должна запускать скрипт каждый час.

вы создаете этот скрипт с помощью Notepad

$wc = new-object System.Net.WebClient
$ip = $wc.DownloadString("http://myexternalip.com/raw")
$LogTime = Get-Date -Format "MM-dd-yyyy_hh-mm-ss"
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt $LogTime
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt "`n"
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt $ip
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt "`n"

и сохраните его как getIP.ps1 куда-то. Этот сценарий можно вызвать либо непосредственно в powershell, либо с помощью планировщика задач, как я. Это команда для выполнения:

powershell -executionpolicy bypass -File C:\Users\Administrator\Desktop\getIP.ps1

в планировщике задач создайте новую задачу. At триггер вы используете параметр ежедневно на каждый 1 день и под расширенный вариант вы выбираете каждый час в течение немедленно. Также проверьте запустить задачу как можно скорее после пропуска запланированного запуска на настройки. Под Action вставить приведенный выше код выполнения.

код powershell может быть оптимизирован, потому что я не гуру powershell (мой первый раз с ним.) Сейчас я тестирую, вызывается ли скрипт каждый час.

1
отвечен testing 2015-10-07 22:09:34
источник

вот что я понял, можно использовать встроенную команду для получения публичного IP-адреса, но у вас есть доступ к интернету

telnet icanhazip.com

или

telnet myip.gelma.net
1
отвечен Sam 2015-10-07 22:40:36
источник

ipchicken.com вернет ваш очевидный IP-адрес в текстовом формате, если вы можете разобрать возвращаемый HTML вы извлекаете внешний IP вашего маршрутизатора. Кроме того, можно установить один из этих динамических DNS-агентов, обновляющих внешний IP-адрес до полного доменного имени, а затем просто выполнить nslookup для полного доменного имени, чтобы увидеть текущий IP-номер. Раньше были бесплатные, как DynDNS, но большинство из них теперь требуют платной подписки.

0
отвечен anthonymaw 2018-11-08 19:54:03
источник

Другие вопросы command-line ip windows