Kannst Du mit curl und ein paar anderen Tools unter Linux o.ä. recht einfach machen. Für eine grundsäzliche Anleitung schaust Du
hier.
Basierend darauf hab ich mir beispielsweise das folgende Skript fertig gemacht:
Code: Alles auswählen
#!/bin/bash
_PASSWORD="DeinBoxKennwort"
_REQUESTPAGE="/internet/docsis_info.lua"
_BOXURL="http://fritz.box"
_USERNAME=""
_CHALLENGE=$(curl -s "${_BOXURL}/login_sid.lua?username=${_USERNAME}" | grep -Po '(?<=<Challenge>).*(?=</Challenge>)')
_MD5=$(echo -n ${_CHALLENGE}"-"${_PASSWORD} | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}')
_RESPONSE="${_CHALLENGE}-${_MD5}"
_SID=$(curl -i -s -k -d "response=${_RESPONSE}&username=${_USERNAME}" "${_BOXURL}" | grep -Po -m 1 '(?<=sid=)[a-f\d]+')
curl -s "${_BOXURL}${_REQUESTPAGE}" -d "sid=${_SID}"
Wenn man das ausführt bekommt man im wesentlichen die HTML-Table zurück, die auf der entsprechenden Seite des Webinterfaces die Modemwerte anzeigt. Will man die Daten einfach nur archivieren, kann man wahrscheinlich diesen Output schon einfach als Datei abspeichern und das alles regelmäßig wiederholen. Man kann es aber auch sicherlich noch weiter verarbeiten und dann einer weiteren Auswertung zuführen - ich selber will die Tage mal zusehen, dass ich ein Munin-Plugin schreibe, dass die auf diese Art und Weise erhaltene Daten verarbeitet.
Eine Sache, die ich mich noch frage, ist, wie man mit der Session umgehen soll ... jeder Aufruf des Skripts macht wohl eine neue Session auf. Die könnte man am Ende auch wieder abmelden, indem man die Zeile
Code: Alles auswählen
curl -s "${_BOXURL}/index.lua" -d "sid=${_SID}" -d "logout=1"
Am Ende hinzufügt. Aber dann hätte man bei jeder Abfrage den Workflow Anmelden / Abrufen / Abmelden. Zweckmäßiger dürfte sein, sich einmal anzumelden und dann immer wieder mit der gleichen Session-ID abzufragen (und ggf. ganz am Ende erst irgendwann die Session abzumelden, oder sie austimen lassen). Fraglich ist nur, ob eine einmal angemeldete Session (zumindest bei regelmäßiger Nutzung) dauerhaft aktiv bleibt oder aber irgendwann abläuft. In diesem Fall mag es dann doch einfacher sein, anstatt sich damit herumzuschlagen, für jede Abfrage eine neue Session anzumelden und direkt danach wieder abzumelden. Aber das alles ließe sich mit etwas Geduld sicherlich weiter testen - der grundlegende Weg dazu ist oben auf jeden Fall aufgezeigt.