Daten von der FritzBox auslesen.

Hallo zusammen,

gibt es eine Möglichkeit, Daten von der Fritzbox auszulesen? Ich habe mit WWW Reader und Textparser probiert, und bekomme einfach kein vernünftiges Ergebnis. Ich würde zum Beispiel gerne Abends den Datentranfer loggen, oder auf die Anruferliste zugreifen.

Gruß Marcel

Pleibling und obicom haben da grade was gescriptet und vorgestellt.

Die [b]Suche[/b] spuckt folgendes aus:

http://www.ip-symcon.de/forum/showthread.php?t=2846
http://www.ip-symcon.de/forum/showthread.php?t=236 (weiter hinten)

Und mit Code:
http://www.ipsymcon.de/forum/showthread.php?p=21763

Weitere Stichworte sind XML und JFritz

so long,

Toni

Moin Zusammen,

also das Prjekt ist schon wesentlich weiter … mittlerweile kann man z.B. aus der Anrufliste heraus wählen (Ajax Script von peibling) usw…

Hier mal die aktuellen Links aus dem MCE Forum (MCE ist keine !! Vorraussetzung)

http://www.mce-community.de/forum/index.php?showtopic=14492&st=150&#entry121338

und hier ein Link zum „Grundscript“… hat sich aber schon weider sehr viel verändert (Layout)

http://www.mce-community.de/forum/index.php?showtopic=13556&st=25&#entry119620

Ja, habe ich gelesen, aber das bezieht sich doch „nur“ auf die Anruferliste. Mir geht es vorrangig um das Übertragungsvolumen.

Gruß Marcel

wie schaut denn die Webseite aus, die dein Datenvolumen darstellt? lad doch mal den Quellcode hoch…

Da geht das Problem ja schon los:

Die FritzBox verwendet Java Script Buttons, um den Seiteninhalt darzustellen. Ensprechen kann ich die aufzurufende Seite aus IPS nicht direkt anspringen.

Wenn ich die Seite lokal speichere, gliedert sich das ganze in eine Hauptseite, in der nicht viel steht und eine Unterseite, die von der Hauptseite aufgerufen wird. Hier steht alles mehr oder minder versteckt drin z.B.:

dslencap_ipsnap" || caps == "dslencap_ipraw")) {
			switch (status) {
				case "5":
					str = g_pppSeit +"9 Stunden 47 Minuten 43 Sekunden<br>"+mldIpAdr;
					break;
				case "3":
					str = "-";
					break;
				default:
					str = g_pppNoData;
					break;
			}

So dachte ich wennigstens, für an die Stunden zu kommen, nehme ich Text between ‚str = g_pppSeit +"‘ und ‚<br>"+mldIpAdr‘

Aber auch das führt nicht zum Ziel. Ausserdem wäre ich dann ja immer noch nicht auf der Seite für die Datenmengen.

Gruß Marcel

Ich müsste jetzt die richtige Einsprungsseite haben. Scheinbar verstehe ich aber das Gesamtprinzip des WWW Readers nicht.

Ich habe einen WWW-Reader, der die Seite aufruft, und einen Textparser, der mit einer Regel (getText) auf eineVariable zeigt.

In meiner Variable steht dann:

No valid Rules defined! Please check your Tags!

Edit: Ich habe noch ein Register Variable dazu genomme. Es kommen hier auch Werte an, aber die Varible ist zu klein, um die ganze Seite aufzunehmen. Somit weis ich nicht, ob es die richtige Seite ist. und meine Tags drin vorkomme

Gruß Marcel

mit Ajax und cgi-bin gehen …

das wählen geht z.B. so … (mit vorheriger Anmeldung auf der Box)

Beispiel ->
var url = ‚http://fritz.box/cgi-bin/webcm‘;
var parameters = ‚telcfg:command/Dial=‘ + nummer ‚&telcfg:settings/DialPort=‘ + nebenstelle;

du müsstest mal per telnet schauen, ob es auch für dei „Problem“ ein ->
cgi-bin/webcm gibt (im Ordner auf der FB) :confused:

Sonst frag mal in dem Forum -> www.ip-phone-forum.de

in der AVM Sektion. Dort krempeln die die Box einmal um und machen daraus nen Toaster :wink:

Ich habe ja inzwischen folgenden Link:

IP-FB/cgi-bin/webcm?getpage=…%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&errorpage=…%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&var%3Alang=de&var%3Apagename=inetstat&var%3Aerrorpagename=inetstat&var%3Amenu=internet&var%3Apagemaster=&time%3Asettings%2Ftime=%2C-60&var%3AtabInetstat=&var%3Auserid=&var%3Aisnew=

Den habe ich über „Seite speichern“ in der gespeicherten Datei gefunden.

Im InternetExplorer kommt auch die richtige Seite. Und auch in der Variable steht ja was drin. Nur komme ich scheinbar mit dem TexParser nicht klar/bzw. weis nicht wie der funktioniert.

Gruß Marcel

so suche ich Vorname und Name in einer HTML Seite …
kleine Änderungen … und du solltest jeden String in der zurückgegebenen HTML Seite auch ohne WWWPhraser finden …

Viel Glück ! :wink:

function findNumberDE($caller)
{
   $url_orig="http://www.telefonauskunft.de/inverseSearch.php?strasse=&newSearch=1&sid=lm996s9alvjlo7f5t7b1g1ngs2&vollstaendig=#TEL#";
   $url=str_replace("#TEL#","$caller",$url_orig);
   $handle=fopen("$url", "r");
   if (!$handle){
      // Kann URL nicht öffnen
      echo("ERROR : Kann URL nicht öffnen : '$url'
");
   }
   $lineNb = 0;
   $searchTag0 = '&Name=';
   $searchTag1 = '&Vorname=';
   $searchTag2 = '&Strasse';
   $found = 0 ;
   while(!$found && !feof($handle)) {
      $lineNb++;
      $buffer = fgets($handle);
        if (strpos($buffer, $searchTag0) !== false) {
        $found = 1 ;
        $startLN= (strpos($buffer, $searchTag0)+6) ;
        $endeLN = strpos($buffer, $searchTag1) ;
        $Lastname = substr($buffer, $startLN, ($endeLN-$startLN)) ;
        $startFN= (strpos($buffer, $searchTag1)+9) ;
        $endeFN = strpos($buffer, $searchTag2) ;
        $Firstname = substr($buffer, $startFN, ($endeFN-$startFN)) ;
        $foundName1 = $Firstname." ".$Lastname."
\r" ;
        $foundName1 = str_replace('+', ' ', $foundName1);
        }
      else {$foundName1 = "Unbekannt";}
   }
   fclose($handle);
   return $foundName1;
}

?>

Kannst du die Seite denn ohne vorgeriges Login aufrufen (Browser) ? wundert mich eigentlich …

Ich stelle mir das so vor …

  • zuerst Login auf der Box …
  • dann Seite mit der Funktion von oben holen (url = dein HTTP/cgi-bin/ Link)
  • nach deinem Volumen suchen und in Variabele schreiben (return foundname1)
  • im Designer weiter verarbeiten …und in der GUI darstellen …

Auch nicht schlecht!!!

Werde ich mir heute Abend mal in Ruhe ansehen.

Gruß Scd

@obicom
Vielen Dank für Dein Script! Damit konnte ich, nach ein paar Änderungen die Fritzbox Daten auslesen.

Trotzdem interessiert mich der TextParser. Sind die Funktionen irgendwo beschrieben? Der Text Parser gibt doch immer nur eine Zeile zurück? Ich dachte, ich könnte den Block mit CutBefore und und CutAfter zuschneiden und dann den Rest an eine Variable übergeben und mit PHP auswerten?

Gruß Marcel

Beispielsweise Hier :wink:

Tja, ich hätte mal auf die Idee kommen können, nicht nur in der Hauptrubrik vom Wiki zu suchen… Asche auf mein Haupt

Aber der TextParser gibt immer max. eine Zeile zurück, oder?

Gruß Marcel

Hallo,

also so wie ich das sehe, gibt der Textphraser genau das zurück , was du ihm als Regel mit auf den Weg gibst … es kann ein Wort, ein Satz oder sonst etwas sein …

Also der www Reader liest die komplette in der URL angegebene HTML Seite ein. Dem Textphraser setzt du nun auf die „Fährte“ und er liefert dir das Ergebniss in einer Variablen.

Das Ergebnis wird dann in die Variable „xyz“ gespeichert. Analog ist es auch möglich z.B. Aktienkurse zu überwachen und Limits per SMS zu verschicken oder über das M34 an ein Gigaset zu melden.

Ganz unten auf der von Tonic empfohlenen Seite findest du das Beispiel „ebay Gebote überwachen“.