Mein Thread wurde in diesem ja schon zitiert und ich bedanke mich für die Anregungen in diesem Thread!
Das Script läuft sehr schön, ich werde es nur die Tage auf meinen Netgear-Router anpassen, sodass ich nur intern abfrage, wie track und BlackHollow mir bereits rieten, um unnötigen Traffic zu vermeiden.
In Zeile 3 ist übrigens ein "senf" vor $ gerutscht...weiß nicht, wie das da reinkommt, aber es gehört da nicht hin. 😊
Ich werde meinen veränderten Quelltext dann hier als Ergänzung posten.
EDIT:
Mein Text ist nun fertig und funktioniert, ich poste ihn hier:
#!/bin/bash
oldIP=$(curl -s -u user:password http://192.168.0.1/RST_status.htm | sed -ne 74,74p | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}')
echo oldIP: $oldIP
sleep 5
while true; do
newIP=$(curl -s -u user:password http://192.168.0.1/RST_status.htm | sed -ne 74,74p | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}')
echo newIP: $newIP
if ! [ $oldIP = $newIP ]
then
DISPLAY=:0.0 gdialog --msgbox "IP has changed from $oldIP to $newIP"
elif [ $oldIP = $newIP ]
then
echo Ip not changed
fi
oldIP=$newIP
sleep 10
done
Dieses Script funktioniert für den Router DG834Gv5 von Netgear. Ihr müsst "user" und "password" jeweils mit euren Zugangsdaten für den Router ändern.
Mein Tipp für alle, die sich solch ein Script für ihren Router konfigurieren wollen: Öffnet die Seite, wo die IP in eurem Router steht und klickt rechts und auf Seitenquelltext anzeigen. Nun müsst ihr ein bisschen schauen, wo auf die Statusseite des Routers verlinkt wird und die html-Datei aufrufen. Diese müsst ihr hinter curl als Parameter angeben, bei mir jetzt RST_status.htm. In der html-Datei sucht euch den Part, wo eure IP steht und klickt sie an. Dann erscheint unten die Zeile. Das ersetzt ihr dann für die 74 hinter "sed". So könnt ihr für jeden Router ein Script erstellen.
@ BlackHollow:
Hätte da noch zwei kleine Fragen zur Syntax:
Wieso muss man hinter sed -ne 74,74p eingeben und nicht einfach nur 74p? Ich sehe nur, dass es nicht funktioniert, kann mir aber keinen Reim drauf machen...😛
Und während ich die zweite Frage schreiben wollte, stolperte ich über die Lösung...😛 Hatte den grep-Befehl nicht ganz verstanden, aber jetzt macht die {3} hinter \.) Sinn....😀