Se un router esegue DD-WRT e ha la pagina di stato in uso quando si accede al router, è possibile, con uno script ... wget la pagina di stato, cat per l'indirizzo IP e scriverlo in un file per il confronto, inviare un'e-mail quando l'ultimo indirizzo IP di wget è cambiato rispetto a ciò che si trova nel file di confronto.
Sto eseguendo dd-wrt su un router linkys wrt54g e utilizzo questo script: E 'in grado di salvare la pagina di stato del router da 192.168.3.1, utilizza cat sulla pagina (index.html) e greps per l'indirizzo ip pallido , quindi lo scrive in un file (gotip.txt).
Viene effettuato un confronto tra l'ip catturato (gotip.txt) e l'ip corrente di lavoro (workingip.txt). Se gli indirizzi IP sono diversi, ricevo un'email inviata per posta del nuovo IP e il nuovo IP funzionante è scritto nel file workingip.txt.
Cron eseguire questo ogni 5 minuti o giù di lì e non ho l'uscita cron tacere a/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="[email protected]"
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
Quanto velocemente vorresti sapere? È abbastanza lungo che una sorta di sondaggio è accettabile? (non che io raccomanderei il polling se è disponibile una notifica adeguata) –
http://stackoverflow.com/questions/8542253/how-to-get-notified-for-ip-address-changes-automatically – LtWorf