Yeah! That's it!
Wenn mich nicht alles täuscht, ist es doch das, wonach immer wieder
gefragt wurde, oder?
Also ich bin der Meinung, hieraus sollte ein WICHTIG gemacht werden.
Für Skript-Bastler hab ich das noch ein bisschen angepasst:
einfach folgendes an die debug.cfg anhängen:
query_install
Code:
# ********************************************************
cat > /var/tmp/query << 'ENDQUERY'
#!/bin/sh
WWW=/usr/www/all/html/tools
VAR=/var/tmp/tools
WEBCM=/usr/www/cgi-bin/webcm
TMP="$WWW/tmp"
case "$1" in
-i) # install: webcm only delivers pages located under /usr/www
mkdir "$VAR" || exit 1
for file in "$WWW"/*; do
base="$(basename "$file")"
touch "$VAR/$base"
mount -o bind "$file" "$VAR/$base"
done
mount -o bind "$VAR" "$WWW"
mkdir "$TMP"
;;
-u) # uninstall
for i in $WWW `find $VAR`
do
umount $i
done
;;
*) # simple query: write page and use webcm to interpret it
if [ ! -d "$TMP" ]; then
"$0" -i
fi
PAGE="$TMP/$$"
echo "<? query $1 ?>" > "$PAGE"
# assume that 127.0.0.1 is already logged in
REQUEST_METHOD=GET REMOTE_ADDR=127.0.0.1 \
QUERY_STRING="getpage=$PAGE" "$WEBCM" |
sed -e '1,/^$/d'
rm "$PAGE"
;;
esac
ENDQUERY
chmod +x /var/tmp/query
/var/tmp/query -i
# ********************************************************
cat > /var/tmp/query_login << 'ENDQUERY_LOGIN'
#! /bin/sh
# Passwort setzen ###########################################
SetWebPW() {
export REQUEST_METHOD="POST"
export REMOTE_ADDR="127.0.0.1"
export CONTENT_TYPE="application/x-www-form-urlencoded"
POST_DATA="login:command/password=$1"
export CONTENT_LENGTH=${#POST_DATA}
echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null
}
# DoIt #########################################################
SetWebPW 'Passwort' # Passwort ggf. anpassen
ENDQUERY_LOGIN
chmod +x /var/tmp/query_login
Danach stehen die Befehle
query_login
lokales Einloggen auf die Weboberfläche
(PW muss natürlich geändert werden)
und
query <param>
Abfrage des gewünschten Status
zur Verfügung.
query -i wird automatisch ausgeführt.
Wer die box mal richtig quälen möchte, kann
query_list (extra-Skript) ausführen. Das sind alle Parameter von der ersten
Seite. Empfielt sich z.B. mit listn > result umzuleiten.
Die Abfrage ist sicherlich nicht optimal und hat über 1 min gedauert,
aber viell. brauchts ja jemand (Für Email-Push oder so).
Ausgabe:
Code:
Fritzbox-Status:
----------------
box:settings/ata_mode: 1
box:settings/dhcpclient/use_static_dns: 0
box:settings/dns0: 192.168.180.1
box:settings/dns1: 192.168.180.2
box:settings/dslbridge_if_routing/activated: 0
box:settings/DSLSpeedDownstream: 1024
box:settings/DSLSpeedUpstream: 128
box:settings/expertmode/activated: 0
...
Danke!