Есть ли способ командной строки показать внешний IP-адрес для моей машины?
3 ответа
Вы можете составить скрипт, который называет whatismyip.com или аналогичный и возвращает интересную часть (хотя такие сайты могут не понравиться вам, если вы это делаете). Как правило, вам нужно будет спросить кого-то еще (другой компьютер), каков ваш IP, так как ваш компьютер не знает. Вы могли бы также спросить свой маршрутизатор, но, вероятно, будет сложнее разбирать.
Ваш компьютер не знает, что это внешний IP-адрес, потому что маршрутизатор использует NAT *. Пакет, покидающий ваш компьютер, имеет от: [ваш внутренний IP-адрес], но маршрутизатор перенаправляет его в от: [внешний IP-адрес вашего маршрутизатора] и отправляет его в Интернет. Затем маршрутизатор разбирает (или перераспределяет) поле to: возвращаемых пакетов и перенаправляет их на ваш компьютер.**
Вы можете получить почти чистый вывод из:
wget -q -O - checkip.dyndns.org
* Трансляция сетевых адресов.
** Это только краткое описание того, как работает NAT.
Вы можете получить его с разных сайтов по всему миру, таких как checkip.dyndns.org. Если у вас есть сайт, который сообщает вам ваш IP-адрес, вам не составит труда использовать curl для загрузки страницы и awk для ее анализа.
curl http://checkip.dyndns.org/ 2> /dev/null | ruby -pe '$_=$_.scan(/\d+\.\d+\.\d+\.\d+/)'
ifconfig.me имеет несколько отличных опций строки cmd.
Это возвращает ваш IP
curl ifconfig.me/ip
Это возвращает большой кусок информации
curl ifconfig.me/all