Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie Fritzbox Anrufliste abfragen mit SessionID

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    HS/FS Wie Fritzbox Anrufliste abfragen mit SessionID

    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;-)
    Gruß Jörg

    #2
    Session ID Fritzbox

    Hallo,

    gibt es hier einen neuen Status?

    Habe das gleiche Problem.

    Wie geht es denn zur Not mit freetz?


    Gruß

    ip_freak

    Kommentar


      #3
      Session ID Fritzbox

      Hallo zusammen,

      hat inzwischen schon wer die Abfrage der FritzBox mittels session ID geschafft ?

      Vielleicht hilft ja folgender Eintrag weiter:
      Session ID + Integration in die eigenen Programme

      Mein Ziel: Abfragen des WLAN-Status aus der Fritz-Box
      Dies ist mir noch nicht gelungen, da das Anmelden scheitert.

      Nach Anmeldung könnte der Status wohl per Abfrage aus der Anmeldeseite ausgelesen werden (dort im Klartest EIN oder AUS)!

      Vielen Dank
      Andreas K.

      Kommentar


        #4
        Also bei mir funktioniert das abrufen der Anruferliste von der Fitzbox. Ich habe die 7390 mit aktueller Firmware. Allerdings ist die Webabfrage etwas tricky wegen der sessions-id aber es ist machbar. Weiss nur nicht mehr ganz genau wie alles zusammen hängt. Müsste ich bei Bedarf mal raussuchen. Ist schon lange her dass ich das realisiert habe.
        Gruss Patrik alias swiss

        Kommentar


          #5
          Hi, das geht über eine rekursive Webabfrage.
          Also innerhalb der Webabfrage noch eine Webabfrage machen.

          Aber, das geht doch alles viel leichter mit dem Callmonitor.

          Gruß Tbi

          Kommentar


            #6
            Ich habe mal nachgesehen. bei mir laufen 2 Webabfragen. die erste ermittelt die aktuelle SessionsID und in der zweiten wird mit hilfe der ermittelten SessionsID die Anruferliste abgefragt. Ist also nicht sooo schwierig zum Umsetzen.
            Gruss Patrik alias swiss

            Kommentar


              #7
              @ swiss:

              Kannst die Webabfragen nicht in den Download-Bereich stellen?

              Gruß

              Olaf
              Möchte den Komfort meiner Installation nicht mehr missen!

              Kommentar


                #8
                Zitat von Hightech Beitrag anzeigen
                @ swiss:

                Kannst die Webabfragen nicht in den Download-Bereich stellen?

                Gruß

                Olaf
                Hallo Olaf

                Würde ich gerne aber ich habe da noch ein grosses Problem. Ich nutze die Fritzbox ohne Kennwort. Damit ist die Webabfrage auch mit Sessions-ID relativ einfach. Wenn man aber Kinder hatt oder aus sonstigen Gründen ein Kennwort setzt, gestaltet sich die Abfrage sehr schwierig da die SID nicht einfach ausgelesenwerden kann. Sie muss praktisch von Hand jedes mal neu errechnet werden muss Das wäre für mich ein Grund, einWG-Plugin zu schreiben. Wie man das ganze im HS umsetzt weiss ich momentan noch nicht. Man müsste dazu Theoretisch einen neuen Logikbaustein schreiben der die SID errechnet.
                Gruss Patrik alias swiss

                Kommentar


                  #9
                  Python-Quellcode für SID-Abfrage der FritzBox

                  Zitat von swiss Beitrag anzeigen
                  Hallo Olaf
                  Man müsste dazu Theoretisch einen neuen Logikbaustein schreiben der die SID errechnet.
                  Hallo zusammen,

                  Leider bin ich selbst nicht fit genug, um einen Baustein zur Ausgabe der SID (bei Passwort-geschützten) FitzBox´en zu erstellen.

                  Eigentlich müsste der folgende Link schon den notwendigen Python-Quellcode für den zukünftigen Baustein enthalten:

                  http://fritzcap.googlecode.com/svn-h...nk/fritzcap.py

                  Vielleicht findet sich ja ein wer unter Euch, der diesen Baustein ohne großen Aufwand (?) erstellen kann.

                  Viel Erfolg
                  Andreas

                  Kommentar


                    #10
                    Zitat von ak68 Beitrag anzeigen
                    Vielleicht findet sich ja ein wer unter Euch, der diesen Baustein ohne großen Aufwand (?) erstellen kann.
                    Niiiiiiiiils, Godfather of Logik-Bausteine, wann liest Du das hier?

                    Olaf
                    Möchte den Komfort meiner Installation nicht mehr missen!

                    Kommentar


                      #11
                      Ist doch alles schon da:

                      https://knx-user-forum.de/downloads.php?do=file&id=325

                      oder meint ihr was anderes?

                      Gruss
                      Marcel
                      seit: 11'08 KNX / 04'09 HS3 / 12'09 WG mit 21 Temp & 4 Feuchtesensoren / 10'10 Enocean mit 15 Fenstergriffe Hoppe / 02'11 MBus2Serial Gas-Wasserzähler
                      HS3: 99% / VISU: PV 99%, iPad 99%
                      60 Akt. Linie1 / 14 Akt. Linie2

                      Kommentar


                        #12
                        Zitat von Hightech Beitrag anzeigen
                        Niiiiiiiiils, Godfather of Logik-Bausteine, wann liest Du das hier?

                        Olaf
                        Hi

                        bin net so oft hier im Moment.

                        Ich seh es mir mal an, aber an board scheint alles zu sein
                        utf16le is drin und md5 halt nich über hashlib aber über das deprecated md5.

                        Sollte passen, wenn es euch reicht das mit der SID zu kriegen versuch ichs nachher mal.

                        Oder iss das nich mehr aktuell?

                        Was wäre nutzbar? WLAN / AB / RUML ... Ideen?
                        Nils

                        aktuelle Bausteine:
                        BusAufsicht - ServiceCheck - Pushover - HS-Insight

                        Kommentar


                          #13
                          /mode langeweile on

                          Code:
                          EN[1] == "Fritzbox IP" / EN[2] == "password"
                          
                          5012|0|"EI and len(EN[1]) > 7"|"__import__('re').findall('<Challenge>(.*?)</Challenge>',__import__('urllib').urlopen('http://%s/cgi-bin/webcm?getpage=../html/login_sid.xml' % (EN[1])).read())"|""|0|0|1|0
                          5012|0|"SC[1] and len(SN[1])>0"|"__import__('codecs').utf_16_le_encode(unicode('%s-%s' % (SN[1][0],EN[2])))[0]"|""|0|0|2|0
                          5012|0|"SC[2] and len(SN[1])>0 and len(SN[2])>2"|"'%s-%s' % (SN[1][0],__import__('md5').new(SN[2]).hexdigest().lower())"|""|0|0|3|0
                          5012|0|"SC[3] and len(EN[1]) > 7"|"__import__('re').findall('<SID>(.*?)</SID>',__import__('urllib').urlopen('http://%s/cgi-bin/webcm' % (EN[1]), 'login:command/response=%s&getpage=../html/login_sid.xml' % (SN[3])).read())"|""|0|0|4|0
                          /mode langeweile off


                          auf SN[4] is dann die SID

                          EDIT: bzw. wenn SC[4] und len(SN[4])>0 ... dann SN[4][0] == SID
                          Nils

                          aktuelle Bausteine:
                          BusAufsicht - ServiceCheck - Pushover - HS-Insight

                          Kommentar


                            #14
                            FritzControl v0.2

                            https://knx-user-forum.de/downloads.php?do=file&id=423

                            Have Fun
                            Nils

                            aktuelle Bausteine:
                            BusAufsicht - ServiceCheck - Pushover - HS-Insight

                            Kommentar


                              #15
                              Merci Nils...
                              Gruß Jörg.


                              "Wir sind nicht die ersten, die dieses Feature einbauen, aber wir werden es am besten umsetzen."
                              (Steve Jobs)

                              Kommentar

                              Lädt...
                              X