Ich würde gerne die DSL-Daten (Geschwindigkeit, Downstream/Upstream) meiner FB auslesen, aber auf Shell-Ebene (Linux), also ohne GUI.
Klingt auf den ersten Blick zwar logisch, läßt aber schon noch Fragen offen. Meinst Du mit "Shell-Ebene" eine externe Shell oder die Telnet-Shell der FRITZ!Box? Heißt "ohne GUI", daß es auch kein "wget"-Kommando sein darf?
Wie oft willst Du das denn machen? Wenn es regelmäßig passieren soll und sich die Anwendung dann jedesmal neu anmeldet, ist schnell das Log vollgeschrieben und es gehen u.U. wichtige Meldungen verloren.
Nachdem ab 06.23 wohl auch überall kein nc mehr vorhanden ist, ist es etwas komplizierter ... ansonsten ist z.B. eine Ausführung von
Code:
nc -ll -p 999 -e /sbin/showdsldstat
auf der FRITZ!Box eine Möglichkeit und die läßt sich dann von jedem anderen Rechner (im LAN!) mit "nc fritz.box 999" problemlos abfragen. Natürlich kann man anstelle des "nc"-Kommandos auch "telnetd" verwenden:
Code:
telnetd -l /sbin/showdsldstat -b 192.168.178.1 -p 999
(Hallo AVM, wenn schon dann richtig! - Ob man den Angriff mit dem telnetd oder mit nc startet, ist eher nebensächlich.)
Dann fragt man eben auch die Daten mit "telnet" ab:
Genauso gut kann man natürlich auch gleich auf der FRITZ!Box nur ein Skript starten lassen (egal ob nc oder telnetd), das genau die gewünschten Daten ausgibt ... wo man das Parsen machen läßt, ist Geschmackssache und eine Frage dessen, was man am Ende erreichen will. Wenn 5 Clients dieselben Daten brauchen, ist es schlauer, das bereits vor der Ausgabe zu machen, braucht jeder davon andere Informationen aus der gesamten Ausgabe, wären 5 verschiedene Dienste mit 5 passenden Ausgaben sicherlich die schlechtere Variante.
Wenn man das ohne Dienst auf der FRITZ!Box machen will, geht das auch irgendwie. Wie gesagt, das Vollschreiben des Eventlogs wäre ein Nachteil, also muß man oft genug abfragen (mindestens 1x pro Stunde, sonst Timeout) und sich die Session-ID nach einmaliger Anmeldung merken (die schlechtere Lösung in meinen Augen, weil unsicherer).
Dann kann man die Daten entweder über die TR-064-Schnittstelle oder auch über "query.lua" abfragen (das geht auch bei unmodifizierten Boxen), wie genau, hängt davon ab, was man exakt wissen will. Einige Daten lassen sich über die IGD-Schnittstelle auch ohne Anmeldung auslesen, wenn man das in der Oberfläche entsprechend einstellt.