sigkill
Goto Top

Fritz-Box: Telefon Konfiguration per shell oder LAN auslesen

Hallo,

gibt es eine Möglichkeit, die Konfiguration der Fritz-Box komfortabel auswertbar(xml o.ä.) auszulesen?
Speziell geht es mir um die konfigurierten Leitungen(ISDN/VoIP) und Nebenstellen sowie die Zuordnung der Telefonnummern zu den Nebenstellen.

Ok, ich könnte die Ganze liste per shellscript auslesen, mit 'ctlmgr_ctl r telcfg settings/' jeden einzelnen wert abfragen und ausgeben, aber das erscheint mir doch etwas umständlich.

/var/flash/fonctrl bietet zwar viele der nötigen Informationen, aber (zumindest bei meiner Box) nicht für alle eingerichteten Geräte sondern nur für die, welche in letzter Zeit benutzt worden.
Ich habe 4 Geräte eingerichtet ... internes Fax, analoges Telefon, DECT(Fritz!Fon) und VoIP-Phone per Android-app. Das Fax wurde in letzter Zeit nicht benutzt, die App ist schon monatelang deaktiviert - /var/flash/fonctrl zeigt nur analoges und DECT-Telefon an. Außerdem werden nicht alle Leitungen aufgelistet. Insgesamt scheint mir /var/flash/fonctrl nur eine Anrufliste mit den dafür nötigen Informationen zu sein.

Gibt es noch eine andere Möglichkeit die ich übersehen habe?

Content-ID: 236328

Url: https://administrator.de/contentid/236328

Ausgedruckt am: 22.11.2024 um 00:11 Uhr

colinardo
Lösung colinardo 24.04.2014 aktualisiert um 19:13:17 Uhr
Goto Top
Hallo sigkill,
vielleicht interessiert dich diese Anleitung dazu :
Informationen aus dem Webinterface einer Fritz!Box via Shellscript auslesen

Die entsprechende Seite müsste man dann natürlich noch auswerten ...

Grüße Uwe
sigkill
sigkill 24.04.2014 um 13:33:05 Uhr
Goto Top
Danke, aber das Webinterface ist nicht wirklich eine Lösung....
Zum einen verstecken sich die Informationen auf mehreren Seiten, zum anderen kann sich das Webinterface schnell mal ändern beim Firmwareupdate. Bevor ich da jeden gewünschten Wert mühsam aus dem html extrahiere bin ich noch schneller wenn ich die einzeln per ctlmgr_ctl in der shell der Fritzbox auslese.
colinardo
Lösung colinardo 24.04.2014, aktualisiert am 25.04.2014 um 08:48:31 Uhr
Goto Top
Zitat von @sigkill:

Danke, aber das Webinterface ist nicht wirklich eine Lösung....
Zum einen verstecken sich die Informationen auf mehreren Seiten,
nur zur Info: wenn du dir den eigentlichen Frame der Seite mal anschaust sind ganz unten alle Konfigurations-Daten ordentlich formatiert aufgelistet (es müssen also nicht mehrere Seiten aufgerufen werden, die Daten sind nicht sichtbar für den User auf der Seite) und so einfacher auswertbar.
Sieht dort dann beispielsweise so aus:
  ["telcfg:settings/VoipExtension0/Name"] = "IPhone WLAN", 
  ["telcfg:settings/VoipExtension0/Number0"] = "999999", 
  ["telcfg:settings/VoipExtension0/Number1"] = "", 
  ["telcfg:settings/VoipExtension0/Number2"] = "", 
  ["telcfg:settings/VoipExtension0/Number3"] = "", 

Bevor ich da jeden gewünschten Wert mühsam aus dem html extrahiere bin ich noch schneller wenn ich die einzeln per ctlmgr_ctl in der shell der Fritzbox auslese.
dann mach das doch so, eine andere Variante ist mir nicht bekannt

Etwas Arbeit musst du halt investieren ... und wenn es was wird, kannst du ja meine Anleitung ergänzen oder eine Neue erstellen, dann haben wir auch was davon.

Grüße Uwe
sigkill
sigkill 24.04.2014 um 18:21:11 Uhr
Goto Top
Danke face-smile

Dass im HTML-Quelltext die Queries versteckt sind habe ich nicht gemerkt.

Im Prinzip ist es dasselbe wie in der shell der FritzBox:

BusyBox v1.20.2 (2013-05-13 12:53:07 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

# ctlmgr_ctl r telcfg settings/VoipExtension0/Name
IPhone WLAN
# ctlmgr_ctl r telcfg settings/VoipExtension0/Number0
999999
# ctlmgr_ctl r telcfg settings/VoipExtension0/Number1
# ctlmgr_ctl r telcfg settings/VoipExtension0/Number2
# ctlmgr_ctl r telcfg settings/VoipExtension0/Number3
#

Damit ist es wohl eine Philosophiefrage .... die Werte per shellscript in der box auslesen, in ein xml packen und irgendwo hochladen oder per Webinterface auslesen und auswerten bleibt sich wohl gleich.... Ich glaube ich bleib bei der shell face-smile

Aber zum debuggen ist die Weboberfläche trotzdem nicht übel - man sieht im Überblick welcher Schlüssel grad welchen wert hat und ob man interessante Schlüssel übersehen hat.

Danke
115420
115420 27.04.2014 um 13:54:57 Uhr
Goto Top
Hallo colinardo!

Ich möchte mir anhand Deines Scripts eine HTA-Abfrage basteln, aber leider verstehe ich in Deinem Bash-Script (Codezeile 6-7) nur Bahnhofface-sad

Könntest Du mir anhand meines VBS-Beispiels bitte mal kurz erklären, wie der Response-Wert erzeugt wird?

Beispiel:
Const CAPICOM_HASH_ALGORITHM_MD5 = 3

sPassword = "My Password"  
sUrl = "http://fritz.box/login.lua?"  

sValue = GetHashValue("???", CAPICOM_HASH_ALGORITHM_MD5)  

sResponse = "???"  

Function GetHashValue(sValue, sAlgorithm)
    With CreateObject("CAPICOM.HashedData")  
	.Algorithm = sAlgorithm
	.Hash sValue
	 GetHashValue = .Value
    End With
End Function

Grüße
spatzenhirn
colinardo
colinardo 27.04.2014 aktualisiert um 15:44:14 Uhr
Goto Top
Tach auch ...
Zitat von @115420:
Ich möchte mir anhand Deines Scripts eine HTA-Abfrage basteln, aber leider verstehe ich in Deinem Bash-Script (Codezeile 6-7)
nur Bahnhofface-sad
Zeile 6 extrahiert den challenge code aus dem Inhalt der Webseite. Der sieht dann z.B. so aus:
g_challenge = "8e364c1b"
davon wird natürlich nur das was zwischen den Anführungszeichen steht gebraucht, also 8e364c1b
In Zeile 7 wird dann die Kombination 8e364c1b-PASSWORD in UTF16LE (WICHTIG!) konvertiert, und von der resultierenden MD5 Summe nur die ersten 32 Zeichen extrahiert.
Die Response ist dann die Kombination aus CHALLENGE und MD5 verbunden mit einem dash(-), also im obigen Beispiel dann
8e364c1b-3fa8b7e3c62e718ea1cbd28f754bdfb8
Grüße Uwe
115420
115420 27.04.2014 um 15:59:37 Uhr
Goto Top
Hallo colinardo!

OK, dass sollte ich hinbekommen und danke für Deine Hilfeface-smile

Habe jetzt anhand Deiner Anregung auch den entsprechenden Java-Code im Quellcode der Anmeldeseite entdeckt. Den hatte ich mir vorher leider nicht so genau angesehenface-sad

Grüße
spatzenhirn