серверный скрипт, который отправляет электронное письмо каждый раз, когда меняется глобальный ip

Я настраиваю веб-сервер, который не будет иметь статический глобальный IP-адрес. Он будет в доме моих родителей, и я не смогу подключиться к нему по SSH, когда изменится глобальная ИС. Глобальный IP-адрес будет меняться при каждом перезапуске маршрутизатора, что происходит один раз в месяц.

Мне нужен скрипт, который отправляет мне электронное письмо каждый раз, когда меняется глобальный IP. Так что я могу обновить DNS, чтобы мой сайт снова работал.

Я ничего не знаю о скриптах в Ubuntu, но я знаю основы Java и PHP.

Компьютер: сервер Ubuntu 13.10, iMac G4 Globe.

6
задан 14 December 2018 в 09:06

5 ответов

Рассматривали ли вы использование сценария / инструмента динамического обновления DNS?

Например. ddclient доступен в виде пакета Debian / Ubuntu.

Он может обновить вашу DNS-зону ИЛИ обновить вашу динамическую DNS-запись (чтобы вы могли войти в ssh) и выполнить собственный сценарий для отправки вам электронной почты.

0
ответ дан 14 December 2018 в 09:06

Я использую это для проверки своего IP-адреса один раз в день.

wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//' > ~/myip

Если у вас есть Linux-компьютер со статическим IP-адресом где-то, я бы сказал, просто скопируйте туда файл ~ / myip.

Если это не так, вы всегда можете использовать удобный инструмент командной строки под названием sendEmail (не путать с sendmail). Этот инструмент позволяет очень легко отправить электронное письмо с помощью однострочной команды. http://caspian.dotconf.net/menu/Software/SendEmail/

Вы можете написать что-то вроде этого:

myip=`wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'`<br>
sendEmail -f you@yourmail.com -m $myip 
0
ответ дан 14 December 2018 в 09:06
  • 1
    Почему я должен установить все эти пакеты? Я can' t, кажется, видят любую ссылку, которая обеспечивает некоторую информацию!! – Sami 8 May 2015 в 23:17

Основываясь на коде из , этот ответ я изменил и добавил еще несколько опций для отладки.

Мне пришлось настроить почтовый сервер и пользователя crontab -e, чтобы он отправлял мне по электронной почте мой текущий IP-адрес. Вам также нужно будет сделать исполняемый файл скрипта и убедиться, что ваш пользователь прочитал и записал в папку, в которую вы помещаете скрипты.

#!/bin/bash
NOWIPADDR="/home/scripts/nowipaddr"
GETIPADDR="dig +short myip.opendns.com @resolver1.opendns.com"
LOG="/home/scripts/ip.log"
timestamp=$( date +%T )
curDate=$( date +"%m-%d-%y" )

if [ -f $NOWIPADDR ]; then
  if [[ `$GETIPADDR` = $(< $NOWIPADDR) ]]; then
    echo $curDate $timestamp " IP address check: " $(< $NOWIPADDR) >> $LOG
  else
    $GETIPADDR > $NOWIPADDR
    mail -s "Server IP" email@gmail.com < $NOWIPADDR
fi
else
  curl $GETIPADDR > $NOWIPADDR
  mail -s "Server IP" email@gmail.com < $NOWIPADDR
fi
0
ответ дан 14 December 2018 в 09:06

Вы можете написать простой скрипт для запуска из cron и ежедневно в определенное время.

Возьмите существующий ip в файл, а затем запустите цикл if, чтобы проверить новый ip с существующим ip, и если оба ip остаются одинаковыми, он может пропустить отправку почты. иначе, если есть изменение в IP, это должно послать почту с новым ip.

Вы можете запускать скрипт ежечасно, ежедневно, еженедельно.

NOWIPADDR="nowipaddr"
GETIPADDR="ifconfig.me"


    if [ -f $NOWIPADDR ]
    then
       if [ `cat $NOWIPADDR` = `curl $GETIPADDR` ]
       then
           echo "no change in IP."
       else
           $GETIPADDR > $NOWIPADDR
           mail -s "IP is $GETIPADDR" yourmailadd@gmail.com
        fi
    else
        curl $GETIPADDR >> $NOWIPADDR
    fi
0
ответ дан 14 December 2018 в 09:06

Определенный старый поток, но это подходит довольно высоко в списке, когда Вы поиск Google, как контролировать для внешних изменений IP.

Как альтернативная опция, которая могла бы помочь Вам, я записал сценарий Python, разработанный для контроля для внешних изменений IP-адреса. Это в настоящее время сохраняет "текущий" внешний IP-адрес в файл и, когда выполнено, захватывает новый IP-адрес и затем проверяет его по старому. Это - дизайн, чтобы послать Вам по электронной почте, если изменение обнаруживается.

Это разработано для выполнения как cronjob и не работает как второстепенный демон самостоятельно.

Вот ссылка на репозиторий GitHub: https://github.com/begleysm/ipwatch

Надо надеяться, это помогает!

0
ответ дан 23 November 2019 в 07:19

Другие вопросы по тегам:

Похожие вопросы: