Fritzbox UPnP Reconnect Skript

n0niL

Neuer User
Mitglied seit
18 Apr 2014
Beiträge
24
Punkte für Reaktionen
0
Punkte
0
Hi,

habe mir ein Reconnect-Skript für meine Fritzbox geschrieben. Möchte mehrmals hintereinander reconnecten. Auch evtl. 1000 mal. Jedoch bricht mein Skript immer nach ca. 30 Reconnects ab. Arbeite unter Unix und verwende zum Senden der SOAP-Nachricht curl. Weis jemand an was das liegen kann bzw. wie man mit Curl ein anständiges Errorhandling macht, um auf solche Fehler zu reagieren. Mein Skript ist relative einfach. Ich möchte einfach so schnell wie möglich reconnecten.

Gruß
n0niL
 
Ich hätte nicht mal einen Vorschlag...
 
Ok, sorry. Hätte gedacht, die Erklärung reicht. Mache ja nicht viel :-D.


for i in `seq 1 50`
do
curl "http://fritz.box:49000/upnp/control/WANIPConn1" \
-H 'Content-Type: text/xml; charset="utf-8"' \
-H 'SoapAction: urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination' \
-d '<?xml version="1.0" encoding="utf-8"?> <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body> <u:ForceTermination xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" /> </s:Body> </s:Envelope>' > /dev/null

//do something
curl http://www.google.de
done

So, das ist eigentlich alles was ich mache.
 
Zuletzt bearbeitet:
Mit Code auch keiner eine Antwort !? :(
 
Immer ruhig.
Schau mal auf die Uhr.
Riechst du den Kaffee ?
Bin dann auch mal weg ....
 
Hast Du das mal ohne "ForceTermination", mit irgendeiner Abfrage von irgendwas, probiert ?

Am Ende ist es vielleicht ganz simpel ein DoS-Schutz in der Firmware, der nur eine bestimmte Anzahl von Connects auf dem TR-064-Port pro Zeiteinheit zuläßt ... ansonsten solltest Du mal eine Fehlermeldung zeigen.

Wenn das mit curl nicht klappt (die Fehlermeldung zu sehen), nimm halt 'nc' oder etwas ähnliches (die Bash mit /dev/tcp/ ist auch eine Möglichkeit), da einen HTTP-Header davor zu bauen (noch dazu bei fixer Länge des Requests) ist ja nun kein Kunststück und vielfach im Netz erklärt.
 
Abend

#Kommando
Code:
TRY_IT=$(/var/media/ftp/USBSPEICHER/mips/curl -s -X POST -H "Accept:application/json" -H "Content-type: application/json" -d ${DATA} ${URL})
Dann landet etwaige Rückgabe (Fehler-, oder Erfolgsmeldung) in: $TRY_IT (Variable)
Damit kannste dann machen was immer du willst, zum Beispiel in ein Log schreiben lassen...
#DEBUG
Code:
echo -e  $DATUM"\n"$0":"$$""$! $#"Argumente\n1="$1"\n2="$2"\n3="$3"\n4="$4"\n5="$5"\n6="$6"\n7="$7"\n8="$8"\n9="$9"\nJSON:"$TRY_IT >> /var/media/ftp/USBSPEICHER/curl.log
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.