Когда ты находишься за натом (NAT), а то и за двумя-тремя, и при этом у тебя есть только терминал, и тебе необходимо быстро узнать свой внешний IP-адрес, то первое, что приходит в голову, так это сделать трассировку, но из-за сетевых ограничений, перенаправлений трафика на другие выходные узлы и т.д., трассировка может подвести, и не отобразить действительную информацию, например:

screenshot_2017-03-28_22-23-00

При этом, на сервере ты можешь быть ограничен утилитами, у тебя могут быть ограничения на сетевом уровне, например администратор зарубил прохождение ICMP, и из трассировки вобще ничего не понятно, то на помошь приходят сервисы, которые при заходе на них — отображают твой внешний IP-адрес.
Но, ты когда ты на сервере, и у тебя нет GUI, или хотя бы браузера Links, но при этом есть Curl, то можно выполнить следующее:

$ curl http://ifconfig.co

и получить свой внешний IP-адрес

screenshot_2017-03-28_22-23-11

Как видим, IP-адрес получен в чистом виде, без grep, или других парсингов, а также видно, что внешний IP-адрес разнится с результатами трасировки, и при этом находится за тремя натами😱
Curl, конечно удобная утилита, но она встречается гораздо реже, чем wget, следовательно, выполнив:

$ wget -qO- http://ifconfig.co

мы получаем, тот же результат:

screenshot_2017-03-28_22-52-56

На самом деле, идея подобного сервиса далеко не нова, есть и другие, но я лично моментально запомнил ifconfig.co, ибо ассоциативно с утилитой /sbin/ifconfig.

Ещё запросом можно получить страну и город внешнего IP-адреса:

screenshot_2017-03-28_22-58-19

Можно прочекать TCP-порты внешнего IP-адреса, так сказать псевдо-сканирование:

screenshot_2017-03-28_23-05-32

В общем, при необходимости, можно найти много способов применения данного сервиса, особенно в разработке, скриптах автоматизации, и т.д.
Плюс ко всему, исходный код сервиса доступен на Github (язык Go), так что, можешь форкать, дорабатывать, разворачивать у себя и т.д. 😉

UPDATE
Подумав, что рано или поздно ifconfig.co может отвалиться, и его копия может быть не развернута на своём сервере, пришла в голову мысль рассказать о том, как это делалось по старинке, стандартными Linux-тулзами, с применением grep и регулярных выражений.
Приведенный ниже пример, работает на большинстве сайтов, суть его в том, чтобы подтянуть html-страницу, и распарсить её в поисках валидного IP-адреса, уникализировать найденные IP-адреса, и вывести их:

$ wget -qO- https://2ip.ru | grep -E -o «(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)» | uniq

З.Ы. Проверено, на паре-тройке сайтов выданных в гугло-поиске

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

w

Connecting to %s