6

Можно ли получить ваш публичный IP-адрес через cmd, не используя такие сайты, как http://whatismyipaddress.com/? Я за роутером.

Пожалуйста, не стесняйтесь идти как можно более подробно. Я учусь на экзамен Net+

6 ответов6

10

Вы можете использовать PowerShell Invoke-RestMethod:

PS > Invoke-RestMethod ipinfo.io/ip
99.109.97.210

Или псевдоним:

PS > irm ipinfo.io/ip
99.109.97.210
7

Ты не можешь Зачем? Там нет четкого определения «публичный IP-адрес». Я бы отметил, что ответ - это массивная абстракция, достаточно хорошая, чтобы объяснить мою точку зрения, но изобилующая незначительными пробелами. Не стесняйтесь комментировать большие (так что я могу подключить их).

По сути, все общедоступные IP-адреса - это адреса в подсети, которые не зарезервированы для частного использования. В отношении сетевого стека нет различий между публичным и частным IP-адресами. Это просто маршрутизация между подсетями. Теоретически, в закрытой сети, хотя это ужасная практика, вы можете использовать диапазон общедоступных IP-адресов, а обратное действие - использование адреса RFC 1918 в общедоступном Интернете может привести к поломке.

Если я запускаю pathping (и хотя я не желаю выкладывать свой IP-адрес в интернете, но это не cgn, а начинается с 101)

Мой IP-адрес не указан ни на одном маршруте (поэтому ... ваш компьютер может не знать о своем публичном IP-адресе).

Понятие публичного IP-адреса также туманно. Что бы это было за двойным nat (eww!) Или даже тройным nat (возможно, с перекрывающимися диапазонами IP-адресов!). Что это будет за CGN или даже закрытой сетью?

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

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

4

Там нет ничего автоматически встроенного в Windows, что сделает это. Как и другие пользователи в прошлом, вы можете попробовать что-то вроде:

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

и используйте DNS-запрос для возврата вашего публичного IP-адреса. Ответ изначально был найден здесь.

1

Попробуй это. Вы можете использовать% MyIP% в качестве переменной или просто для отображения.

@echo off
nslookup myip.opendns.com resolver1.opendns.com | find "Address" >"%temp%\test1.txt"
more +1 "%temp%\test1.txt" >"%temp%\test2.txt"
del %temp%\test1.txt
set /p MyIP=<%temp%\test2.txt
del %temp%\test2.txt
set MyIP=%MyIP:~10%
cls
echo .
echo %MyIP%
echo .
0

Можно ли получить ваш публичный IP-адрес через cmd?

На ваш вопрос невозможно ответить так, как он есть, потому что вы задаете не тот вопрос.

Вы должны были спросить:

Как получить WAN- адрес моего интернет-соединения из командной строки?

Адрес WAN может быть общедоступным или частным IP-адресом:

  • Ваш провайдер предоставляет WAN-адрес.
  • Это может быть статическим / динамическим
  • Это может быть государственным / частным

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

0

Вот решение с использованием Powershell:

@powershell -NoProfile -Command "(new-object net.webclient).DownloadString('http://www.trackip.net/ip')"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .