Fritzbox Anrufliste mit PHP auslesen?

tommo

Neuer User
Mitglied seit
9 Jan 2012
Beiträge
13
Punkte für Reaktionen
0
Punkte
1
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
 
Zuletzt bearbeitet:

radislav

Aktives Mitglied
Mitglied seit
15 Mrz 2008
Beiträge
950
Punkte für Reaktionen
0
Punkte
16
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

Zuletzt bearbeitet:

tommo

Neuer User
Mitglied seit
9 Jan 2012
Beiträge
13
Punkte für Reaktionen
0
Punkte
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
 

radislav

Aktives Mitglied
Mitglied seit
15 Mrz 2008
Beiträge
950
Punkte für Reaktionen
0
Punkte
16
hallo,

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

gruß
 

radislav

Aktives Mitglied
Mitglied seit
15 Mrz 2008
Beiträge
950
Punkte für Reaktionen
0
Punkte
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?
 

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
1
Punkte
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.
 

tommo

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

Gruß,
Tom
 

radislav

Aktives Mitglied
Mitglied seit
15 Mrz 2008
Beiträge
950
Punkte für Reaktionen
0
Punkte
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
 

tommo

Neuer User
Mitglied seit
9 Jan 2012
Beiträge
13
Punkte für Reaktionen
0
Punkte
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
 

radislav

Aktives Mitglied
Mitglied seit
15 Mrz 2008
Beiträge
950
Punkte für Reaktionen
0
Punkte
16
ja, einfach ersetzten (evtl. umbennen) und probieren! bitte um rückmeldung ob php und curl funktionieren :)
 

tommo

Neuer User
Mitglied seit
9 Jan 2012
Beiträge
13
Punkte für Reaktionen
0
Punkte
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
 

radislav

Aktives Mitglied
Mitglied seit
15 Mrz 2008
Beiträge
950
Punkte für Reaktionen
0
Punkte
16
ok, dann funktioniert es so nicht: ich kann leider nicht mehr weiterhelfen, sorry
 

Zurzeit aktive Besucher

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
233,364
Beiträge
2,033,279
Mitglieder
351,956
Neuestes Mitglied
einfachluk