.titleBar { margin-bottom: 5px!important; }

Fritzbox Anrufliste mit PHP auslesen?

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von tommo, 17 Jan. 2012.

  1. tommo

    tommo Neuer User

    Registriert seit:
    9 Jan. 2012
    Beiträge:
    13
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    #1 tommo, 17 Jan. 2012
    Zuletzt bearbeitet: 17 Jan. 2012
    Hallo

    Ich habe den Apache von Radislav installiert.

    Wie kann ich denn mittels PHP die Anruferliste der Fritzbox auslesen?

    Ich habe es mit folgendem Script probiert, jedoch scheinen bei PHP ein paar Pakete zu fehlen (z.B. CURL). Hab leider keine Ahnung, wie ich die nachinstallieren kann.

    Code:
    <?php
    
    $ip = '192.168.178.1';
    $passwd = 'YOURPASS';
    
    // get Challenge
    $response = file_get_contents("http://" . $ip . "/cgi-bin/webcm?getpage=../html/login_sid.xml");
    
    
    
    
    $xml = new SimpleXMLElement($response);
    $challange = $xml->Challenge;
    
    $str = $challange . '-' . $passwd;
    
    // hash challange + pass and encode to UTF-16LE
    $md5 = md5( iconv('ISO8859-1', 'UTF-16LE', $str) );
    
    $response = $challange . '-' . $md5;
    
    
    $data = array(
       "getpage"                => "../html/de/menus/menu2.html",
       "login:command/response" => $response
    );
    
    
    $response =  post_to_url("http://" . $ip . "/cgi-bin/webcm?", $data);
    
    // get SessionID
    preg_match('/value="(w+)" id="uiPostSid">/', $response, $matches);
    
    $sid = $matches[1];
    
    // refresh data
    $tmp = file_get_contents("http://" . $ip . "/cgi-bin/webcm?sid=" . $sid . "&getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&errorpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&var%3Apagename=foncalls&var%3Aerrorpagename=foncalls&var%3Amenu=home&var%3Apagemaster=&var%3Aactivtype=pppoe&var%3AtabInetstat=0&var%3Aweckernr=&logger%3Asettings%2Ffilter=2");
    
    
    // get CSV :)
    $csv = file_get_contents("http://" . $ip . "/cgi-bin/webcm?sid=" . $sid . "&getpage=..%2Fhtml%2Fde%2FFRITZ%21Box_Anrufliste.csv");
    
    
    // weiterverarbeitung der CSV ... -> file_put_contents etc ...
    echo $csv;
    
    
    
    function post_to_url($url, $data) {
       $fields = '';
       foreach($data as $key => $value) { 
          $fields .= $key . '=' . $value . '&'; 
       }
       rtrim($fields, '&');
       
       
       $post = curl_init();
       
       curl_setopt($post, CURLOPT_URL, $url);
       curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
       curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);
       curl_setopt($post, CURLOPT_FOLLOWLOCATION, 1);
       
       $result = curl_exec($post);
       
       curl_close($post);
      
       return $result;
      
    } 
    Meine Box: FRITZ!Box Fon WLAN 7270 v2, Firmware-Version 54.05.05

    Danke,
    Tom
     
  2. radislav

    radislav Aktives Mitglied

    Registriert seit:
    15 März 2008
    Beiträge:
    950
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    #2 radislav, 18 Jan. 2012
    Zuletzt bearbeitet: 19 Jan. 2012
    hallo,

    ich schreibe mal hier, weil es hier ausführlicher ist...
    für curl muss das php-binary glaub ich neu kompiliert werden. wie es geht, kann ich allerdings auf die schnelle nicht sagen.

    [EDIT]
    ich habe nun mal statisches binary für curl kompiliert, ob es allerdings kein schwachsinn war, kann ich nicht sagen. somit anbei curl für 7270 v2. bitte um rückmeldung, ob es funktioniert und wie man es einbindet.
    [/EDIT]
     

    Anhänge:

    • curl.zip
      Dateigröße:
      315.7 KB
      Aufrufe:
      18
  3. tommo

    tommo Neuer User

    Registriert seit:
    9 Jan. 2012
    Beiträge:
    13
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Hallo Radislav,

    wie kann ich denn Dein binary in die bestehende Apache Umgebung einbauen?

    Muss ich die Dateien einfach in ein Verzeichnis kopieren und eine Config-Datei des Apache anpassen/erweitern?

    Gruß,
    Tom
     
  4. radislav

    radislav Aktives Mitglied

    Registriert seit:
    15 März 2008
    Beiträge:
    950
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    hallo,

    das weis ich leider nicht.. vielleicht kann apache-forum weiterhelfen.

    gruß
     
  5. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das curl Binary wird nichts bringen. Entweder Du erstellst selbst ein PHP mit curl Unterstützung, oder Du machst den Post von Hand.
     
  6. radislav

    radislav Aktives Mitglied

    Registriert seit:
    15 März 2008
    Beiträge:
    950
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    @RalfFriedl:
    ich habe php mit curl kompiliert (mit freetz). was muss ich denn alles zusammenpacken, damit es genutzt werden kann? muss man dann auch apache.conf anpassen?
     
  7. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wenn curl in PHP enthalten ist, muss man wahrscheinlich gar nichts mehr anpassen, erst recht nicht in der Apache Konfiguration.
    Wenn curl in PHP dynamisch ist, muss man dem PHP sagen, dass es das curl Modul laden soll.
     
  8. tommo

    tommo Neuer User

    Registriert seit:
    9 Jan. 2012
    Beiträge:
    13
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    @radislav: Hat's geklappt? Wenn ja, kannst Du Deine Dateien bitte zur Verfügung stellen?

    Gruß,
    Tom
     
  9. radislav

    radislav Aktives Mitglied

    Registriert seit:
    15 März 2008
    Beiträge:
    950
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    @tommo, es hat geklappt, ich kann aber nicht sagen, ob es wirklich funktioniert.
    das anhängen wird hier allerdings immer schwiriger: es funktioniert nicht mal im explorer mehr :( hier der link
     
  10. tommo

    tommo Neuer User

    Registriert seit:
    9 Jan. 2012
    Beiträge:
    13
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Das wäre ia Super!
    Was muss ich denn machen, einfach die php-cgi Datei gegen die vorhandene php Datei im Verzeichnis apache/cgi-bin tauschen? Oder muss ich da noch in irgendwelchen config-Dateien Anpassungen machen?

    Gruß,
    Tom
     
  11. radislav

    radislav Aktives Mitglied

    Registriert seit:
    15 März 2008
    Beiträge:
    950
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    ja, einfach ersetzten (evtl. umbennen) und probieren! bitte um rückmeldung ob php und curl funktionieren :)
     
  12. tommo

    tommo Neuer User

    Registriert seit:
    9 Jan. 2012
    Beiträge:
    13
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    also wenn ich die "php" datei einfach umbenenne und die "php-cgi" einfüge, dann findet er den Pfad nicht.

    Wenn ich die "php-cgi" in "php" umbenenne, dann kommt ein Internal Server Error beim Aufruf einer php-Datei.

    Tom
     
  13. radislav

    radislav Aktives Mitglied

    Registriert seit:
    15 März 2008
    Beiträge:
    950
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    ok, dann funktioniert es so nicht: ich kann leider nicht mehr weiterhelfen, sorry