Приветствую Вас, Гость! Регистрация RSS

Мой сайт

Четверг, 19.09.2024
Главная » 2014 » Май » 7 » мой вариант: как узнать внешний ip за nat/роутером (linux consol)
14:43
мой вариант: как узнать внешний ip за nat/роутером (linux consol)

Чтоб узнать свой внешний ip, которым вы выходите в интернет, можно просто открыть в браузере страницу http://internet.yandex.ru, где все и прочитать

Но мне понадобилось не просто узнать, а сохранить это значение куда-нибудь.
Хочу на рабочих машинах установить скрипт, который будет проверять, какой сейчас ip и если он вдруг поменялся, то предупреждать об этом - выводить сообщение. Но об этом в другой раз.

А сейчас мне надо получить внешний ip, для началa через консоль (конечно в линуксе).

Если вам приходится решать такую задачу, то в интернете вы найдете часто повторяющийся и простой пример как это можно сделать:

Код
wget -O - -q icanhazip.com


Как работает эта команда?
Дается команда на скачивание файла (wget), но без вывода служебной информации (опция -q) и без сохранения этого файла c выводом результата на экран (опция -O -) .
А скачивать файл , как вы уже наверно догадались, надо icanhazip.com

Но моя параноя не позволяет мне пользоваться неизвестными мне сервисами и сайтами. Кто знает что это за сайт и кем он был сделан (и мало ли для чего).
{Хотя мне хочется думать, что этот сайт был сделан неким добрым человеком, как раз имено для того, чтоб быстро узнать внешний ип}


Я знаю и доверяю ineternet.yandex.ru
 

Terminal/Консоль
wget -q -O - internet.yandex.ru|grep -P -o '([0-9]{1,3}\.){3}[0-9]{1,3}'


Что делает эта команда?
Первую часть (wget -q -O - internet.yandex.ru) подробно обяснять не буду, понятно что тоже самое, но скачивает файл internet.yandex.ru.
Если вы выполнете её то увидете, что на экран выйдет весь html код этой странички.
Этот код нужно отфильтровать (команда grep).
Нам из этого кода нужна только одна строка (опция -Р), которая содержит ip - это значение содержащее четыре трехзначные цифры, разделенных точкой (шаблон: '([0-9]{1,3}\.){3}[0-9]{1,3}').
И мы хотим видеть имено только ту часть строки, которая соотвествует шаблону (опция -o).

Вот и всё - запускаем терминал проверяем свой ip.

 

Почитать дополнительно
про wget: http://ru.wikipedia.org/wiki/Wget, http://www.opennet.ru/man.shtml?topic=wget&category=1&russian=0
про grep: http://boombick.org/blog/posts/74

 

 

Просмотров: 1266 | Добавил: adminprg | Теги: внешний ip, wget, yandex.ru, grep, IP | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]