Если у вас есть маршрутизатор с DD-WRT и у вас есть страница состояния, используемая при переходе к маршрутизатору, вы можете с помощью скрипта ... wget страницу состояния, cat для IP-адреса и записать его в файл для сравнения, отправьте электронное письмо, когда последний IP-адрес wget изменился по сравнению с тем, что находится в файле сравнения.
Я запускаю dd-wrt на маршрутизаторе linksys wrt54g и использую этот скрипт:
Он получает страницу состояния маршрутизатора из 192.168.3.1, использует cat на странице (index.html) и greps для адреса wan ip, а затем записывает его в файл (gotip.txt).
Проводится сравнение между захваченным ip (gotip.txt) и текущим рабочим ip (workingip.txt). Если IP-адреса отличаются, я получаю электронное письмо, отправленное по почте с новым IP-адресом, и новый рабочий IP-адрес записывается в файл workingip.txt.
Cron запускает это каждые 5 минут или около того, и у меня вывод cron отключен на / dev / null
#!/bin/bash
getip=$(wget http://192.168.3.1/)
cat index.html | grep "wan_ipaddr" > gotip.txt
gotip=$(cat gotip.txt)
compare=$(cat workingip.txt)
if [[ "$compare" != "$gotip" ]]
then
EMAIL="youremail@foo.net"
EMAILMESSAGE="/home/pi/ipmessage.txt"
echo "ip address is now $gotip" >> $EMAILMESSAGE
/usr/sbin/sendmail -t "$EMAIL" < $EMAILMESSAGE
rm ipmessage.txt
cp gotip.txt workingip.txt
rm index.html
else
echo "done"
rm index.html
fi