Hallo,
ich habe auf meiner Visu die Anruflistenabfrage integriert. Dieses hatte ja sehr gut funktioniert, bis die bei AVM die SessionID eingeführt haben.
Seitdem geht die Abfrage nicht mehr! Danach bin ich auf die Box Modifikation Freetz umgestiegen(danke TRex) und es geht auch bombig! Doch wenn jetzt wieder ein Update kommt, muss ich immer das Update mit dem Freetz patchen. Daher wäre es eigentlich toll, wenn man das alte Script wieder zum laufen bekommen würde.
Und hierzu bitte ich um Eure Hilfe. Denn ich habe eine Anleitung gefunden, wei man mit der SessionID umgehen soll. Doch ich muss sagen, ich weiß nicht, wie ich das umsetzen soll.
Hier mal die Erklärung von AVM (http://www.avm.de/de/Extern/Technica...Session_ID.pdf).
Dann dann ein Zitat von Hilfsprogramme / Tipps & Tricks - Fritz!Box:
"
Anrufliste von der Box holen (Beispiel für neues Loginverfahren mit SID)
Ab der Firmware .76 verwendet die Fritzbox ein neues Loginverfahren. Login mit Passwort geht per Script nicht mehr so einfach. Nach dem Login muss man immer eine SID im Request übergeben. Das Password wird auch nicht mehr im Klartext übermittelt. (http://www.avm.de/de/Extern/Technical_Note_Session_ID.pdf) Das Passwort (+Challenge) wird als MD5 Hash eines UTF16LE (!) Strings übergeben.
#!/bin/sh
# Challenge abholen
ChallengeXML=`wget -O - "http://fritz.box/cgi-bin/webcm?getpage=../html/login_sid.xml" 2>/dev/null| grep Challenge`
Challenge=`echo $ChallengeXML | awk '{match($0,/>[^<>]+</); print substr($0,RSTART+1,RLENGTH-2)}'`
Passwd="xxxxx"
# login aufbauen und hashen
CPSTR="$Challenge-$Passwd"
MD5=`echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}'`
RESPONSE="$Challenge-$MD5"
POSTDATA="login:command/response=$RESPONSE&getpage=../html/de/menus/menu2.html"
# login senden und SID herausfischen
SID=`wget -O - --post-data="$POSTDATA" "http://fritz.box/cgi-bin/webcm" 2>/dev/null| grep "name=\"sid\"" | head -1 | awk '{match($0,/value="[^"]+"/); print substr($0,RSTART+7,RLENGTH-8)}'`
# refresh der daten auslösen
wget -O /dev/null "http://fritz.box//cgi-bin/webcm?sid=$SID&getpage=..%2Fhtml%2Fde%2Fmenus%2Fme nu2.html&errorpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2. html&var%3Apagename=foncalls&var%3Aerrorpagename=f oncalls&var%3Amenu=home&var%3Apagemaster=&var%3Aac tivtype=pppoe&var%3AtabInetstat=0&var%3Aweckernr=& logger%3Asettings%2Ffilter=2"
# CSV runterladen
wget -O ../fb_anrufliste.csv "http://fritz.box/cgi-bin/webcm?sid=$SID&getpage=..%2Fhtml%2Fde%2FFRITZ%21Bo x_Anrufliste.csv" 2>/dev/null
"
Kann jemand sagen, wie nun die Webabfrage anzupassen ist???
Gruß Jörg
PS: Habe ein neues Thema gemacht, denn ich denke in dem ursprünglichen Thema sind genug unterschiedliche Themen integriert;-)
ich habe auf meiner Visu die Anruflistenabfrage integriert. Dieses hatte ja sehr gut funktioniert, bis die bei AVM die SessionID eingeführt haben.
Seitdem geht die Abfrage nicht mehr! Danach bin ich auf die Box Modifikation Freetz umgestiegen(danke TRex) und es geht auch bombig! Doch wenn jetzt wieder ein Update kommt, muss ich immer das Update mit dem Freetz patchen. Daher wäre es eigentlich toll, wenn man das alte Script wieder zum laufen bekommen würde.
Und hierzu bitte ich um Eure Hilfe. Denn ich habe eine Anleitung gefunden, wei man mit der SessionID umgehen soll. Doch ich muss sagen, ich weiß nicht, wie ich das umsetzen soll.
Hier mal die Erklärung von AVM (http://www.avm.de/de/Extern/Technica...Session_ID.pdf).
Dann dann ein Zitat von Hilfsprogramme / Tipps & Tricks - Fritz!Box:
"
Anrufliste von der Box holen (Beispiel für neues Loginverfahren mit SID)
Ab der Firmware .76 verwendet die Fritzbox ein neues Loginverfahren. Login mit Passwort geht per Script nicht mehr so einfach. Nach dem Login muss man immer eine SID im Request übergeben. Das Password wird auch nicht mehr im Klartext übermittelt. (http://www.avm.de/de/Extern/Technical_Note_Session_ID.pdf) Das Passwort (+Challenge) wird als MD5 Hash eines UTF16LE (!) Strings übergeben.
#!/bin/sh
# Challenge abholen
ChallengeXML=`wget -O - "http://fritz.box/cgi-bin/webcm?getpage=../html/login_sid.xml" 2>/dev/null| grep Challenge`
Challenge=`echo $ChallengeXML | awk '{match($0,/>[^<>]+</); print substr($0,RSTART+1,RLENGTH-2)}'`
Passwd="xxxxx"
# login aufbauen und hashen
CPSTR="$Challenge-$Passwd"
MD5=`echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}'`
RESPONSE="$Challenge-$MD5"
POSTDATA="login:command/response=$RESPONSE&getpage=../html/de/menus/menu2.html"
# login senden und SID herausfischen
SID=`wget -O - --post-data="$POSTDATA" "http://fritz.box/cgi-bin/webcm" 2>/dev/null| grep "name=\"sid\"" | head -1 | awk '{match($0,/value="[^"]+"/); print substr($0,RSTART+7,RLENGTH-8)}'`
# refresh der daten auslösen
wget -O /dev/null "http://fritz.box//cgi-bin/webcm?sid=$SID&getpage=..%2Fhtml%2Fde%2Fmenus%2Fme nu2.html&errorpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2. html&var%3Apagename=foncalls&var%3Aerrorpagename=f oncalls&var%3Amenu=home&var%3Apagemaster=&var%3Aac tivtype=pppoe&var%3AtabInetstat=0&var%3Aweckernr=& logger%3Asettings%2Ffilter=2"
# CSV runterladen
wget -O ../fb_anrufliste.csv "http://fritz.box/cgi-bin/webcm?sid=$SID&getpage=..%2Fhtml%2Fde%2FFRITZ%21Bo x_Anrufliste.csv" 2>/dev/null
"
Kann jemand sagen, wie nun die Webabfrage anzupassen ist???
Gruß Jörg
PS: Habe ein neues Thema gemacht, denn ich denke in dem ursprünglichen Thema sind genug unterschiedliche Themen integriert;-)
Kommentar