Как получить внешний IP-адрес из командной строки Windows и Linux?
В Windows ipconfig показывает IP-адрес внутренней сети, но не показывает внешний.
5 ответов
Ни 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).
Поиск в 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, поскольку у вас есть пароль и данные для входа, но если провайдер установил маршрутизатор в вашем офисе, он, вероятно, не предоставит вам доступ к своему маршрутизатору.
Вы можете использовать инструмент lynx для получения внешнего ip.
lynx --dump http://whatismyip.org
Ваша машина не знает ваш внешний адрес. Вы должны использовать внешний сервис и получить результаты (например, 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
ifconfig.me - это сайт, который вы можете посетить в браузере, чтобы получить почти всю необходимую вам информацию. Вы также можете использовать curl
на этой странице с указанными переменными, чтобы получить только эту конкретную информацию. Данные возвращаются в виде строки в формате JSON, что значительно упрощает выполнение сценариев. Проверьте нижнюю часть страницы ifconfig.me для большего количества примеров.
Например:
curl ifconfig.me/ip
curl ifconfig.me/all