- Mitglied seit
- 11 Sep 2005
- Beiträge
- 60
- Punkte für Reaktionen
- 2
- Punkte
- 8
Ich habe ein kleines Skript (Bash), das sich bei der Fritz.Box einloggt und den Datenverbrauch (Erste Seite) ausliest. Leider klappt das nicht mehr, seit ich auf Linux Mint 19 upgegradet habe...
Ich habe keine Ahnung warum das nicht mehr geht, da an der FB und am Skript nichts verändert wurde.
Hier mal die entsprechende Funktion:
Bei den Werten $challenge und $hash bekomme ich noch Werte. Bei $FB_SID immer 00000000 als Ergebnis
Ich habe keine Ahnung warum das nicht mehr geht, da an der FB und am Skript nichts verändert wurde.
Hier mal die entsprechende Funktion:
Code:
f_fbtraffic(){
# Auf gültiges Login prüfen
LOGIN_STAT=$(curl --silent "http://${FB_IP}/login_sid.lua?sid=$FB_SID" | grep -c '0000000000000000')
if [[ $LOGIN_STAT -gt 0 ]] ; then
echo -n 'Login nötig... '
challenge="$(curl --silent "http://${FB_IP}/login_sid.lua" | grep -o "<Challenge>[a-z0-9]\{8\}" | cut -d'>' -f 2)"
#echo -n "\$challenge: $challenge"
hash="$(echo -n "${challenge}-${FB_PWD}" | sed -e 's,.,&\n,g' | tr '\n' '\0' | md5sum | grep -o "[0-9a-z]\{32\}")"
#echo " - \$hash: $hash"
FB_SID="$(curl --silent "http://${FB_IP}/login_sid.lua" --data "response=${challenge}-${hash}" --data "username=${FB_USER}" \
| grep -o "<SID>[a-z0-9]\{16\}" | cut -d'>' -f 2)"
echo "OK. (${FB_SID})"
fi
# Ende der Login-Funktion
# JSON-Version - Zeile in ein Array Beispiel: 30503 von 300000 MB
NETCNT=($(curl --silent "http://${FB_IP}${REQUESTPAGE}" \
--data "xhr=1&lang=de&page=overview&xhrId=first&noMenuRef=1&no_sidrenew=&sid=${FB_SID}" \
| jq -r '.data.comfort.func[] | select(.["link"] == "netCnt") | .details'))
AM_TRAFFIC=${NETCNT[0]:-0} # Falls Leer dann "0"
#echo "$AM_TRAFFIC MB"
if [[ $AM_TRAFFIC -eq 0 ]] ; then
echo 'Fehler!' > "${CONKY_DATA}/traffic"
else
# --to=iec-i (29,55GiB) --to=si (29.55GB)
numfmt --from=iec --to=iec --suffix=B --format='%.2f' "${AM_TRAFFIC}M" > "${CONKY_DATA}/traffic"
fi
}