Router Control mit FritzBox! Fon WLAN
Ich habe jetzt mal eine Router.dat für die \"Fritz!Box Fon WLAN (ver. 08.03.29)\" gebastelt.
Dafür fehlen mir eigentlich noch folgende Funktionen und Anzeigen:
a) Internetverbindung trennen und aufbauen
b) ist WLAN aktiv ?
c) WLAN ein- und ausschalten
d) Volumen-Verbrauchsdaten komprimiert anzeigen: Dabei bekomme ich bisher immer nur z.B.:
Gesendet Gestern: xxx Byte
Empfangen Gestern: yyy Byte
Auf der Übersichtsseite der Fritz!Box steht allerdings die Gesamttransferrate (also xxx + yyy) und dann noch umgerechnet in MB. Dieses Ergebnis wird allerdings aus den Einzelwerten per JavaSrcipt errechnet und läßt sich nicht per RouterControl anzeigen.
Ebenso die Online-Zeit: Sie wird nur in Sekunden zur Verfügung gestellt. Aber was bedeutet \"600.000 Sekunden Onlinezeit im letzten Monat\" ? Für die Übersichtsseite wird der Wert in Stunden und Minuten umgerechnet.
Ich habe ca. 60 HTML-Seiten in der Fritz!Box gefunden - hier mal einige interessante:
http://fritz.box/cgi-bin/webcm?getpage= ... calls.html /html/fon/foncalls.html
http://fritz.box/cgi-bin/webcm?getpage= ... /bits.html /html/internet/bits.html
http://fritz.box/cgi-bin/webcm?getpage= ... rview.html /html/internet/overview.html
http://fritz.box/cgi-bin/webcm?getpage= ... yslog.html /html/system/ppSyslog.html
http://fritz.box/cgi-bin/webcm?getpage= ... tstat.html /html/inetstat.html
Kann mir jemand helfen, die fehlenden Funktionen und Daten zu finden ?
Dafür fehlen mir eigentlich noch folgende Funktionen und Anzeigen:
a) Internetverbindung trennen und aufbauen
b) ist WLAN aktiv ?
c) WLAN ein- und ausschalten
d) Volumen-Verbrauchsdaten komprimiert anzeigen: Dabei bekomme ich bisher immer nur z.B.:
Gesendet Gestern: xxx Byte
Empfangen Gestern: yyy Byte
Auf der Übersichtsseite der Fritz!Box steht allerdings die Gesamttransferrate (also xxx + yyy) und dann noch umgerechnet in MB. Dieses Ergebnis wird allerdings aus den Einzelwerten per JavaSrcipt errechnet und läßt sich nicht per RouterControl anzeigen.
Ebenso die Online-Zeit: Sie wird nur in Sekunden zur Verfügung gestellt. Aber was bedeutet \"600.000 Sekunden Onlinezeit im letzten Monat\" ? Für die Übersichtsseite wird der Wert in Stunden und Minuten umgerechnet.
Ich habe ca. 60 HTML-Seiten in der Fritz!Box gefunden - hier mal einige interessante:
http://fritz.box/cgi-bin/webcm?getpage= ... calls.html /html/fon/foncalls.html
http://fritz.box/cgi-bin/webcm?getpage= ... /bits.html /html/internet/bits.html
http://fritz.box/cgi-bin/webcm?getpage= ... rview.html /html/internet/overview.html
http://fritz.box/cgi-bin/webcm?getpage= ... yslog.html /html/system/ppSyslog.html
http://fritz.box/cgi-bin/webcm?getpage= ... tstat.html /html/inetstat.html
Kann mir jemand helfen, die fehlenden Funktionen und Daten zu finden ?
Zuletzt geändert von CCS am 08.02.2005, 11:03, insgesamt 1-mal geändert.
Nun, ich finde es schon interessant - zumal das Datum und die Uhrzeit auch den letzten Login anzeigt.Original von Mirko: hee? Wozu brauchst du denn den 06.02. ? Also alles muss man nun nicht unbedingt anzeigen lassen.
Nein, leider nicht. Ich weiß zwar nicht, wie lang diese Log-Datei werden kann (beim stromlos machen des Routers ist sie wieder komplett leer), aber die Meldung \"Internetverbindung wurde erfolgreich hergestellt\" kann mehrfach auftauchen.Original von Mirko: Oder ist die Angabe <p>06.02.05 11:51:57 Internetverbindung wurde erfolgreich hergestellt. IP-Adresse: x.x.x.x, DNS-Server: 217.237.151.97 und 217.237.150.33, Gateway: 217.5.98.170</p> immer die einzige?
Ich glaube, daß so eine Funktion {lastpos} auch für viele andere Router interessant wäre. Beispiel DHCP-Server: Viele Router listen in einer Logdatei die vergebenen IP-Adressen auf. Da wäre es schon interessant zu sehen, wer als letzter welche IP-Adresse vom Router zugeteilt bekommen hat. Alleine schon aus Sicherheitsgründen - um zu sehen, ob sich da ein fremder WLAN-Client angemeldet hat.
Aber dann bekomme ich doch nur x.x.x.x, DNS-Server: 217.237.151.97 und 217.237.150.33, Gateway: 217.5.98.170 und nicht 06.02.05 11:51:57 ...Original von Mirko: Oder ist die Angabe <p>06.02.05 11:51:57 Internetverbindung wurde erfolgreich hergestellt. IP-Adresse: x.x.x.x, DNS-Server: 217.237.151.97 und 217.237.150.33, Gateway: 217.5.98.170</p> immer die einzige? Dann könntest du mit {startpos=Internetverbindung wurde erfolgreich hergestellt. IP-Adresse:} arbeiten.
Original von CCS:Sch ... ade ...Original von Mirko: Das was du von mir möchtest geht alles nicht. Die Sache mit {startpos=} geht nur mit festen Zeichenketten, die sich NIE ändern.
Aber dann verstehe ich den Sinn von {startpos=} nicht und auch nicht dein Beispiel in der Anleitung:Ein {startpos=<p>IPAdresse}</p> würde dann doch den (festen) Text \"IPAdresse\" ausgeben - wozu braucht man das ?Beispiel:
Original HTML-Code:
<br>WAN Status<p>IP Adresse</p>
Geben Sie {startpos=<p>IPAdresse}</p> an, damit RouterControl zuerst den HTML-Code \'<br>WAN Status\' wegschneidet und danach den Tag </p> sucht.
Das ist doch nur ein Beispiel, das zeigen soll, es wird nach \"<p>IPAdresse\" gesucht, der HTML-Code davor weggeschnitten = vergessen und danach wird weitergesucht. Das kann man z.B. Anstelle von {Zahl} verwenden, wenn man nicht zählen will oder kann.

:totlach:Selbst als Mensch hat man da manchmal so seine Probleme: Da sagt mir doch jemand als Wegbeschreibung: \"Vor der letzten Tankstelle mußt du links abbiegen ...\". Also muß ich erst an der Tankstelle vorbeifahren - ein ganzes Stück - um dann festzustellen: \"na ja, vorhin die Tankstelle wird wohl die letzte gewesen sein ...\" - dann wieder zurück ...Ja und {letzer} geht sowieso nicht, wie soll denn das Programm wissen, was du mit letzter meinst. Du als Mensch siehst natürlich den letzten Eintrag ...
Mhh na OK, wenn man <p> als eindeutiges Merkmal nimmt, dann könnte man ein {lastpos} reinbasteln, alternativ auch noch ein {lastpos-1} usw..Sooo doof sind Computer ja auch nicht. Sollte doch kein großes Problem sein. Genauso wie der Computer mitzählen kann ({1}, {2}, {3}, usw.) sollte er sich doch auch den letzten merken können. Einfach jede Fundstelle speichern (ohne zu zählen) und wenn er am Ende der Datei angelangt ist einfach die letzte gespeicherte verwenden.aber der Computer ist doch doof und sieht keine Logik in den ganzen Buchstaben und Zahlen.

Oder ist die Angabe <p>06.02.05 11:51:57 Internetverbindung wurde erfolgreich hergestellt. IP-Adresse: x.x.x.x, DNS-Server: 217.237.151.97 und 217.237.150.33, Gateway: 217.5.98.170</p> immer die einzige? Dann könntest du mit {startpos=Internetverbindung wurde erfolgreich hergestellt. IP-Adresse:} arbeiten.
Zuletzt geändert von mirko am 06.02.2005, 22:04, insgesamt 1-mal geändert.
Sch ... ade ...Original von Mirko: Das was du von mir möchtest geht alles nicht. Die Sache mit {startpos=} geht nur mit festen Zeichenketten, die sich NIE ändern.
Aber dann verstehe ich den Sinn von {startpos=} nicht und auch nicht dein Beispiel in der Anleitung:
Ein {startpos=<p>IPAdresse}</p> würde dann doch den (festen) Text \"IPAdresse\" ausgeben - wozu braucht man das ?Beispiel:
Original HTML-Code:
<br>WAN Status<p>IP Adresse</p>
Geben Sie {startpos=<p>IPAdresse}</p> an, damit RouterControl zuerst den HTML-Code \'<br>WAN Status\' wegschneidet und danach den Tag </p> sucht.
Selbst als Mensch hat man da manchmal so seine Probleme: Da sagt mir doch jemand als Wegbeschreibung: \"Vor der letzten Tankstelle mußt du links abbiegen ...\". Also muß ich erst an der Tankstelle vorbeifahren - ein ganzes Stück - um dann festzustellen: \"na ja, vorhin die Tankstelle wird wohl die letzte gewesen sein ...\" - dann wieder zurück ...Ja und {letzer} geht sowieso nicht, wie soll denn das Programm wissen, was du mit letzter meinst. Du als Mensch siehst natürlich den letzten Eintrag ...
Sooo doof sind Computer ja auch nicht. Sollte doch kein großes Problem sein. Genauso wie der Computer mitzählen kann ({1}, {2}, {3}, usw.) sollte er sich doch auch den letzten merken können. Einfach jede Fundstelle speichern (ohne zu zählen) und wenn er am Ende der Datei angelangt ist einfach die letzte gespeicherte verwenden.aber der Computer ist doch doof und sieht keine Logik in den ganzen Buchstaben und Zahlen.
Das was du von mir möchtest geht alles nicht. Die Sache mit {startpos=} geht nur mit festen Zeichenketten, die sich NIE ändern. Ja und {letzer} geht sowieso nicht, wie soll denn das Programm wissen, was du mit letzter meinst. Du als Mensch siehst natürlich den letzten Eintrag aber der Computer ist doch doof und sieht keine Logik in den ganzen Buchstaben und Zahlen.
Sch ....... lecht. Dann geht\'s wohl nicht besser ...Original von Mirko:\"Aufbereiten\" kann man nichts, nur so anzeigen wie es ist.
Noch eine Frage:
In der Fritzbox gibt es eine Log-Datei. Der jeweils letzte Eintrag in dieser Log-Datei ist der Interessanteste – er wird aber immer am Ende der Liste eingefügt. Ich komme daher mit den Parametern {1}, {2}, {3}, usw. nicht weiter. Ich bräuchte so etwas wie {letzter}.
Beispiel:
Hier müsste ich eigentlich nach {letzter}<p> suchen lassen.<p>06.02.05 12:44:37 WLAN-Reinitialisierung. Alle WLAN-Stationen werden abgemeldet.</p>
<p>06.02.05 12:39:26 WLAN-Reinitialisierung. Alle WLAN-Stationen werden abgemeldet.</p>
<p>06.02.05 12:37:21 WLAN-Reinitialisierung. Alle WLAN-Stationen werden abgemeldet.</p>
<p>06.02.05 11:51:57 Internetverbindung wurde erfolgreich hergestellt. IP-Adresse: x.x.x.x, DNS-Server: 217.237.151.97 und 217.237.150.33, Gateway: 217.5.98.170</p>
</div>
<div> ….
Und außerdem: Das in deiner Anleitung beschriebene {startpos=<zeichenkette>} verstehe ich nicht
Wie wäre das im obigen Beispiel auf \"Gateway: 217.5.98.170</p>\" anzuwenden ? Die Gateway-Adresse kann sich ja ändern - da kann ich ja schlecht {startpos=217.5.98.170}</p> angeben.Beispiel:
Original HTML-Code:
<br>WAN Status<p>IP Adresse</p>
Geben Sie {startpos=<p>IPAdresse}</p> an, damit RouterControl zuerst den HTML-Code \'<br>WAN Status\' wegschneidet und danach den Tag </p> sucht.
Danke für den Hinweis - es war eine .js Datei. Dort sind die Daten im Klartext enthalten.Original von Mirko:irgendwo muss das JavaScript zum Füllen der Angaben sein, kann auch wieder als externe .js Datei eingebunden sein. In diesem Fall die externe .js Datei einfach mal im Browser anzeigen lassen,
Öhm - kann man mit RouterControl die JavaScript Variablen direkt auslesen ?vielleicht füllt der Router beim Aufrufen der externen .js Datei automatisch die Variablen im Script (nicht in der HTML-Datei), so dass man die JavaScript Variablen direkt auslesen kann.
Weil: Die Daten sind in der .js Datei nur im Rohzustand enthalten und werden vor der Anzeige noch weiter aufbereitet. Z.B. steht in der .js Datei:
Online-Zeit im letzten Monat: 535380 (sek)
und in der Anzeige steht dann 148:43 (hh:mm).
Ich würde sagen, kannst du nicht. Wie gesagt Quelltext anschauen, irgendwo muss das JavaScript zum Füllen der Angaben sein, kann auch wieder als externe .js Datei eingebunden sein. In diesem Fall die externe .js Datei einfach mal im Browser anzeigen lassen, vielleicht füllt der Router beim Aufrufen der externen .js Datei automatisch die Variablen im Script (nicht in der HTML-Datei), so dass man die JavaScript Variablen direkt auslesen kann.
Könnte man grundsätzlich sagen, daß man die Daten nicht erfassen kann, wenn sie im Quellcode nicht vorkommen ?Original von Mirko:
Die Werte werden per JavaScript (DHTML) an die Stellen mit den <span> eingesetzt. Ob man das erfassen könnte, weiß ich nicht, dazu müsste man sich das JavaScript genauer anschauen.
Denn aus der Zeile ...
aktueller Monat 144:28 4532 MB 1912 MB/2620 MB 19
... habe ich die Werte 4532, 1912 und 2620 nirgends im Quelltext gefunden (den Text \"aktueller Monat\" und die Zahl \"19\" fand ich)
Ich habe jetzt mal begonnen die \"FritzBox! Fon WLAN\" mit RCEdit zu erfassen. Die Statusanzeige (Online= Ja/nein und IP-Adresse) funktioniert schon. Alles andere ist schwierig, weil die HTML-Seiten irgendwie \"unorthodox\" sind. Beispiel: Es gibt eine HTML-Seite auf der die verbrauchten Volumen angezeigt werden. Auf der HTML-Seite erscheint z.B. folgendes:
(Zeitraum (hh:mm) gesamt gesendet/empfangen Anzahl Verbindungen)
aktueller Monat 144:28 4532 MB 1912 MB/2620 MB 19
Im HTML-Quelltext steht dazu lediglich:
Oder, anderes Beispiel:
Die Anzeige, ob WLAN inaktiv, aktiv und verschlüsselt oder unverschlüsselt ist, wird mit Variablen gelöst:
(Zeitraum (hh:mm) gesamt gesendet/empfangen Anzahl Verbindungen)
aktueller Monat 144:28 4532 MB 1912 MB/2620 MB 19
Im HTML-Quelltext steht dazu lediglich:
Das heißt, die Zahlen werden irgendwie (?) eingesetzt – erscheinen aber nicht im Quelltext. Ich habe keine Ahnung, wie das gemacht wird.<tr>
<th>aktueller Monat</th>
<td><span>__:__</span></td>
<td><span>____ MB</span></td>
<td><span>____ MB</span>/<span>____ MB</span></td>
<td>19</td>
</tr>
Oder, anderes Beispiel:
Die Anzeige, ob WLAN inaktiv, aktiv und verschlüsselt oder unverschlüsselt ist, wird mit Variablen gelöst:
Wie soll man das in eine Abfrage von RouterControl bekommen ?<tr>
<td>WLAN</td>
<td>
<script>
var wlanstate = \"1\";
var encryption = \"1\";
var toWrite = \"Inaktiv\";
if (wlanstate == \"1\") {
toWrite = \"Aktiv \";
if (encryption == \"0\") toWrite += \"(unverschlüsselt)\";
else toWrite += \"(verschlüsselt)\";
}
document.write(toWrite);
</script>
</td>
</tr>