Определение внешнего IP и небольшие манипуляции с ним

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

Больше всех мне понравился этот. Достаточно просто перейти по ссылке и будет написан внешний айпи адрес без лишних буков.

Но статья бы не писалась ради одной ссылки. Почему бы не использовать информацию об адресе в каких-нибудь интересных целях.
Например, напишем скрипт, который будет пару раз в день смотреть на внешний адрес и проверять его на «счастливость». То есть сумма первых цифр должна совпадать с суммой последних цифр (аналог со счастливым билетом). Если IP окажется счастливым, то можно будет зарегистрироваться на сайте 2ip.ru. Возможно есть ещё и другие сайты, которые дают бонусы владельцам счастливых адресов…

И так, сам скрипт.
Создаём текстовый документ со следующим содержанием:

#!/bin/bash
ip=`wget -q automation.whatismyip.com/n09230945.asp -O /tmp/ip && cat /tmp/ip`
ipr=`sed -e s'/\./ /'g /tmp/ip`


ip1=`echo $ipr | awk '{print$1}'`
ip2=`echo $ipr | awk '{print$2}'`
ip3=`echo $ipr | awk '{print$3}'`
ip4=`echo $ipr | awk '{print$4}'`


aa=$[$ip1+$ip2]
cc=$[$ip3+$ip4]


if [ "$aa" -eq "$cc" ]; then
notify-send ГЦ "твой ip сегодня счастливый"
play sirena.wav
else
notify-send "Твой ip:" "$ip"
fi

Скрипт скопирует страницу с внешним ip в папку /tmp, затем заменит точки на пробелы и внесёт 4 числа в 4 разных переменных. Останется только сравнить сумму первых переменных со суммой вторых и если они совпадут, то появится всплывающие сообщение и заиграет сирена (клик, что бы скачать звук. Не забудьте положить файл туда же, где и сам скрипт). Если суммы не совпадут, то просто появится всплывающие сообщение с IP адресом.

Команда play есть в пакете sox. Установить его в ubuntu можно командой:

sudo apt-get install sox

После чего нужно сохранить изменения в текстовом файле и сделать его испоняемым (в св-вах > правах или командой chmod +x имя файла).

Остаётся только добавить скрипт в планировщик задач cron.

Для этого заходим в сам cron

crontab -e

И пишем внизу

* */12 * * * /путь/к/скрипту

При таком написании он будет срабатывать каждые 12 часов. Более подробно о cron читаем здесь.

Скрипт был, пока закипал чайник. При желании из него можно придумать что-нибудь по интереснее.

Поделись статьёй с друзьями

Или просто поиграйся с кнопочками

7 комментариев на «Определение внешнего IP и небольшие манипуляции с ним»

  1. Кызюавка:

    Умоляю! Скажите как включить вай-фай на ноутбуке HP pavilion g6-1255er?

    • Zegi:

      Ну… я имел дело тока с асускими ноутами. Там просто достаточно нажать кнопку, которая включает wi fi (обычно он по умолчанию включен).
      Кстати, работает ли wi fi можно через команду: ifconfig. Там должны быть строчки с wlan.

      • Кызюавка:

        Та нет, с дровами беда. В версии 11 wi-fi не работает совсем, а в 12 работает, но скорость будто подключаюсь через телефон. А потом и вовсе соединение пропадает.

  2. Asker:

    Задай свой вопрос на форуме убунтоводов http://forum.ubuntu.ru/index.php

  3. n0b0dy:

    так проще curl ifconfig.me/ip

  4. nic11:

    А если так?
    wget -q automation.whatismyip.com/n09230945.asp -O —
    выводит прямо в консольку =)

  5. Diman:

    #!/bin/bash
    IP1=`curl ifconfig.me/ip|tail -n 1`
    notify-send «Внешний IP-адресс $IP1»

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