2010-07-21 06:06:13 +0000 2010-07-21 06:06:13 +0000
61
61

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

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

Ответы (13)

109
109
109
2014-02-27 14:57:47 +0000

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

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

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

версия для Unix:

$ dig +short myip.opendns.com @resolver1.opendns.com
33
33
33
2010-07-21 08:24:26 +0000

возьмите свою собственную копию 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 был создан мной).

16
16
16
2010-07-21 06:28:20 +0000

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

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

7
7
7
2015-04-23 08:25:29 +0000

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

nslookup myip.opendns.com resolver1.opendns.com
6
6
6
2011-02-12 01:58:08 +0000

Создайте файл с именем 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 + рекламу и т.п. например:

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

5
5
5
2014-02-16 13:34:55 +0000

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

For IPv4:

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

For IPv6:

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

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

И, конечно же, по мере изменения сайтов или их выходных данных вы захотите обновить это соответственно. :)

5
5
5
2011-02-12 04:03:59 +0000

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

@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%.

  • *

SIMPLER METHOD:

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

curl icanhazip.com

или…

curl icanhazip.com | clip

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

Вам нужно cURL .

3
3
3
2014-01-15 00:48:54 +0000

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

telnet curlmyip.com 80

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

GET

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

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

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

pkgmgr /iu:”TelnetClient”
3
3
3
2013-12-05 15:40:30 +0000

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

@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));
}
2
2
2
2014-11-28 11:40:53 +0000

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

curl ifcfg.me
nslookup . ifcfg.me
telnet ifcfg.me
ftp ifcfg.me
finger @ifcfg.me
1
1
1
2015-10-07 22:09:34 +0000
1
1
1
2015-03-22 15:25:28 +0000

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

telnet icanhazip.com

или

telnet myip.gelma.net
0
0
0
2018-11-08 19:54:03 +0000

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

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

3
19
3
10
6