4

Как получить внешний IP-адрес из командной строки Windows и Linux?
В Windows ipconfig показывает IP-адрес внутренней сети, но не показывает внешний.

5 ответов5

17

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

В Linux вы можете использовать curl и один из многочисленных сервисов, которые сообщают вам ваш адрес:

$ curl ip.alt.io
123.123.123.123

Для Windows существуют эквивалентные опции, такие как установка curl. Обратите внимание, что сам curl не определяет ваш IP-адрес, он просто спрашивает внешний веб-сайт, с какого IP-адреса вы, по-видимому, пришли.

Однако лучший способ сделать это - использовать сервис динамического DNS (DDNS), например no-ip.com. Здесь вы можете динамически зарегистрировать ваш внешний IP-адрес в DNS. Поэтому вместо использования IP-адреса вы можете использовать адрес домена, например myhomeip.no-ip.com .

Большинство внутренних маршрутизаторов поддерживают автоматическое обновление DDNS при изменении внешнего адреса, а если нет, то есть клиенты для Windows и linux (ddclient).

4

Поиск в Google для того, что мой IP-адрес работает довольно хорошо.

Ваш публичный IP-адрес ##.###.###. 178

Вы также можете получить некоторую информацию о своей сети, чтобы дать вам хорошее представление о том, что происходит. Используя такие инструменты, как netstat, traceroute, ssh или telnet, вы можете выяснить, как вы попадаете в сеть учеников в Интернете.

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

Частная сеть (Википедия)

10.0.0.0/24
172.16.0.0/20
192.168.0.0/16

Я бы начал с поиска моего шлюза по умолчанию.

В Linux:

netstat -r

В Windows:

netstat /r

Который должен показать вам что-то вроде

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
172.16.0.0      *               255.255.255.0   U         0 0          0 eth0
172.16.0.0      *               255.255.255.0   U         0 0          0 wlan0
192.168.122.0   *               255.255.255.0   U         0 0          0 virbr0
link-local      *               255.255.0.0     U         0 0          0 eth0
default         172.16.0.2      0.0.0.0         UG        0 0          0 eth0

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

Теперь выполните traceroute адреса DNS-сервера Google, 8.8.8.8, чтобы увидеть, какой путь вы выберете для внешнего мира.

Linux:

путь 8.8.8.8

Окна:

traceroute 8.8.8.8

Что должно дать вам нечто подобное

traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  172.16.0.2 (172.16.0.2)  0.564 ms  0.882 ms  0.848 ms
 2  ##.###.###.177 (##.###.###.177)  12.239 ms  13.040 ms  13.859 ms

Шаг после моего маршрута по умолчанию был на нашей внешней сети.

Поиск в Google отличался от traceroute но только на одну цифру. Это связано с тем, что для связи с ним вам потребуется IP-адрес того же диапазона, что и у вашего интернет-провайдера. Таким образом, наш маршрутизатор имеет IP-адрес один от нашего внешнего IP-адреса, который используется нашим Интернет-провайдером для маршрутизации трафика в остальной мир.

Ваш публичный IP-адрес ##.###.###. 178

Здесь может помочь информация о том, что на одном устройстве маршрутизатор имеет все три IP-адреса. Приватный, 172.16.0.2 (маршрут по умолчанию) и внутренний, предоставленный, покупают нашего провайдера ##.###.###. 178 и внешний ##.###.###. 177 наш интернет-провайдер использует для подключения к Интернету. Поэтому, если я знаю, как удаленно подключиться к маршрутизатору с помощью Telnet/ssh, я могу использовать запрос к маршрутизатору напрямую, чтобы получить эту информацию с помощью командной строки.

Различные маршрутизаторы и интернет-провайдеры имеют разные способы управления этим. Большинство домашних DSL-модемов довольно легко внедрить в ssh, поскольку у вас есть пароль и данные для входа, но если провайдер установил маршрутизатор в вашем офисе, он, вероятно, не предоставит вам доступ к своему маршрутизатору.

1

Вы можете использовать инструмент lynx для получения внешнего ip.

lynx --dump http://whatismyip.org

1

Ваша машина не знает ваш внешний адрес. Вы должны использовать внешний сервис и получить результаты (например, checkip.dyndns.org).

Вы можете использовать любые HTTP-клиенты командной строки как wget или curl:

$ wget -q -O - checkip.dyndns.org
<html><head><title>Current IP Check</title></head><body>Current IP Address: 129.132.208.173</body></html>

wget доступен как для Windows, так и для GNU/Linux

1

ifconfig.me - это сайт, который вы можете посетить в браузере, чтобы получить почти всю необходимую вам информацию. Вы также можете использовать curl на этой странице с указанными переменными, чтобы получить только эту конкретную информацию. Данные возвращаются в виде строки в формате JSON, что значительно упрощает выполнение сценариев. Проверьте нижнюю часть страницы ifconfig.me для большего количества примеров.

Например:

curl ifconfig.me/ip

curl ifconfig.me/all

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