In diesem Beitrag möchte ich mal das Tool cURL vorstellen, da ich es grade für Verwaltungsscripte sehr nützlich finde. In meinem Fall ist es so, das ich gerne meinen Router neu starten wollte ohne jedes mal erst über die Weboberfläche zu gehen. Warum ich öffters meinen Router starten musste will ich natürlich auch nicht unterschlagen, es war einfach so das mir ein Bekannter Dateien bei Rapid Share hochgeladen hat und da es ja da diese tollen Beschränkungen gibt ich immer wieder eine neue IP brauchte.
Ok zurück zum Tool cURL, diese erhält man auf der Seite http://curl.haxx.se/, im Downloadbereich gibt es ganz unten auch eine Version für Windows. Es gibt zwei Versionen, eine mit und eine ohne SSL Unterstützung, wer also mit https arbeiten möchte muss sich noch zusätzlich die beiden DLLs aus dem OpenSSL Packet runterladen (ganz unten auf der haxx.se Seite) und diese in das cURL Verzeichnis packen.
Als Beispiel habe ich mir mal eine FritzBox 7170 genommen und wollte ein Script haben welches die Box neu startet. Als zusätzliche Hilfe habe ich mir das Addon Live HTTP Headers beim FireFox hinzugefügt. Die Box habe ich mit einem Passwort belegt, was man ja immer machen sollte, in meiner Testumgebung war das Test.
Vorgehensweise:
- Im FireFox unter Extras Live HTTP Headers öffnen
- Im Reiter Generator bei Anzeige alle Hacken raus
- Im FireFox auf die Seite des Routers gehen (in meinem Fall 192.168.1.3)
- Passwort eingeben und Anmelden drücken
- Wenn man angemeldet ist, wieder in das Fenster von Live HTTP Headers wechseln
- Da ist ein Eintrag mit POST am Anfang, rechts drauf klicken und kopieren
- In einem Editor einfügen und die Sonderzeichen durch die normalen Zeichen ersetzen
[ Die Zeile hat anstatt “/” den Wert “%2F” und anstatt “:” den Wert “%3A” drinnen stehen, bei mir kommt cURL irgendwie nicht damit klar, also musste ich diese ersetzen]
- Die Zeile Anpassen (siehe unten “Fertiges Script”)
- Dann in der FritzBox auf Einstellungen / Zurücksetzen gehen und den Button für den Neustart drücken.
- Im Fenster von Live HTTP Headers ist nun ein zweiter POST Eintrag zu sehen, diesen auch wieder kopieren und im Editor einfügen, genau wie eben müssen die Zeichen angepasst werden
Das war es eigentlich auch schon zum Ablauf wie man sich so ein Script zusammen stellt, in der Batch Script Datei muss natürlich noch das cURL Tool mit eingebunden werden, darum habe ich im folgenden ein Beispiel Script, wo ich ein paar Kommentare mit eingefügt habe.
Fertiges Script:
Rem Standartausgaben unterdrücken
@ECHO OFF
Rem Variablen deklarieren
Rem IP ist die Adresse meines Routers, ich habe festgestellt, das z.B. bei
Rem dem T-Com SpeedPort W700 hier nicht die IP geht sondern Speedport.ip
Rem sthen muss
Rem PWD ist mein Passwort für die Box
SET IP=192.168.1.3
SET PWD=test
Rem Hier lasse ich die öffentliche IP vor dem Neustart ausgeben
curl "http://whatismyip.org"
REM Login
Rem Bei der FritzBox wird mit cookies gearbeitet, daher muss
Rem beim login ganz hinten ein -c "cookiename.txt" hinter gehängt werden
Rem Aufruf von cURL: curl.exe "Script wo die POST Daten hingeschickt werden sollen" -d "die POST Daten" [ggf. Cookie]
curl "http://%IP%/cgi-bin/webcm" -d "getpage=../html/de/menus/menu2.html&errorpage=../html/index.html&var:lang=de&var:pagename=home&var:menu=home&=&login:command/password=%PWD%" -c "keks.txt" > NUL
REM RESTART
Rem Hier hat sich im Vergleich zum letzten Befehl nur der Inhalt geändert
Rem der gesendet werden soll, also der Restart Befehl und hinten
Rem steht nicht mehr -c "keks.txt" sonder -b "keks.txt", da nun das bereits
Rem erstellte Cookie genutzt werden soll
curl "http://%IP%/cgi-bin/webcm" -d "getpage=../html/reboot.html&errorpage=../html/de/menus/menu2.html&var:lang=de&var:pagename=reset&var:errorpagename=reset&var:menu=system&var:pagemaster=&time:settings/time=&var:tabReset=0&logic:command/reboot=../gateway/commands/saveconfig.html" -b "keks.txt" > NUL
Rem Hier lasse ich die öffentliche IP nach dem Neustart ausgeben
curl “http://whatismyip.org”
———————————————————————————————————–
Ich habe das auch noch mal in einem Video zusammen gefasst, bitte die schlechte Bildqualität zu entschuldigen, da ich die Videos eigentlich auf YouTube veröffentlichen wollte (das hört man auch in dem Video). Es sind 2 Videos von je ca. 10 Minuten länge.