Wiki

Clone wiki

rt-n56u / RU / Отправка СМС сообщения при смене IP-адреса

Отправка СМС сообщения при смене IP-адреса

Скрипт ниже позволяет автоматизировать выполнение каких-нибудь команд при смене IP-адреса роутера. Для отправки СМС не требуется USB-носитель, скрипт сохраняется во флеш-памяти.

  • Зарегистрируйтесь на sms.ru. Сервис позволяет бесплатно отправлять на телефон, указанный при регистрации до пяти сообщений в сутки. После регистрации вы получите API ID для внешних программ вида 123ab4cd-56e7-fgh8-909i-8j76543kl210.

  • Создайте скрипт /etc/storage/ddns.sh со следующим содержимым:

#!/bin/sh

logger -t $(basename $0) "started [$@]"

# WAN action should be up
[ ! "x$1" == "xup" ] && exit 0

PREV_IP_FILE=/etc/storage/prev_ip.txt

# Prev IP file is not exist
[ -e "$PREV_IP_FILE" ] || echo '127.0.0.1' > $PREV_IP_FILE

if [ -z "$3" ]; then
    # This is .99 firmware or older, where post_wan_script.sh has no 3rd parameter
    IP=$(ifconfig $2 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
else
    IP=$3
fi

if [ "x$(cat $PREV_IP_FILE)" == "x$IP" ]; then
    logger -t $(basename $0) "ip is not changed."
    exit 0
fi

# User DDNS command should be placed here. Sending SMS is just an example
API_KEY=123ab4cd-56e7-fgh8-909i-8j76543kl210
NUM=79050123456
URL=http://sms.ru/sms/send\?api_id=$API_KEY
TEXT=Новый+IP+роутера+$IP
[ "$(wget -qO - $URL\&to=$NUM\&text=$TEXT | head -n 1)" = "100" ]

if [ $? -eq 0 ];
then
    echo $IP > $PREV_IP_FILE
    logger -t $(basename $0) "IP update successfull, new address is $IP"
else
    logger -t $(basename $0) "IP update failed!"
fi
  • Сделайте его исполяемым:
chmod +x /etc/storage/ddns.sh
  • В скрипте укажите свой API ID в строке API_KEY=... и телефон в строке NUM=....
  • Перейдите на страницу Персонализация > Скрипты и в поле Выполнить после события WAN up/down: добавьте:
/etc/storage/ddns.sh $1 $2 $3

Нажмите Применить, чтобы настройки вступили в силу.

Updated