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

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

58
задан 05.03.2013, 15:21

4 ответа

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

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

14
ответ дан 07.12.2019, 08:20

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

32
ответ дан 07.12.2019, 08:20

Создайте названный файл 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)

6
ответ дан 07.12.2019, 08:20

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

@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-адрес в буфер обмена.

Вы должны ЗАВИХРИТЬСЯ.

5
ответ дан 07.12.2019, 08:20

Теги

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