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.
Meine Box: FRITZ!Box Fon WLAN 7270 v2, Firmware-Version 54.05.05
Danke,
Tom
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;
}
Danke,
Tom
Zuletzt bearbeitet: