Nicht schön, aber funktioniert. Ein kleiner Workaround für die Fritzbox
Wenn Du irgendwo in Deinem Netz einen "vertrauenswürdigen" Rechner hast, kannst Du mit dem Skript Domains in die Blacklist eintragen und wieder löschen lassen.
Die Eintragungen werden in dieser Blacklist vorgenommen
in Zeile 6 +7 kommen die Adresse und das Passwort der Fritzbox
In Zeile 8 die zu sperrenden Domains hinterlegen, immer ein Leerzeichen zwischen den Domains einfügen (siehe Beispiel unten)
Dann kannst Du das Skript abspeichern, z.B. als fritzblocker.sh , nicht vergessen es ausführbar zu machen chmod +x fritzblocker.sh
Dann zeitgesteuert die Domainsperre einschalten
./fritzblocker.sh sperren
Sperren erfolgreich
bzw. 8 Stunden später wieder rausnehmen
./fritzblocker.sh freigeben
Freigeben erfolgreich
Die Eintragungen werden in dieser Blacklist vorgenommen
in Zeile 6 +7 kommen die Adresse und das Passwort der Fritzbox
In Zeile 8 die zu sperrenden Domains hinterlegen, immer ein Leerzeichen zwischen den Domains einfügen (siehe Beispiel unten)
Dann kannst Du das Skript abspeichern, z.B. als fritzblocker.sh , nicht vergessen es ausführbar zu machen chmod +x fritzblocker.sh
Dann zeitgesteuert die Domainsperre einschalten
./fritzblocker.sh sperren
Sperren erfolgreich
bzw. 8 Stunden später wieder rausnehmen
./fritzblocker.sh freigeben
Freigeben erfolgreich
Show Plain Text
- #!/bin/bash
- cmd=$1
- # Logindaten
- theServer="192.168.178.1" # IP der Fritzbox
- thePassword="*****" # das Webinterfacepasswort
- gesperrt="foo.de bar.de blub.de test.de"
- function get_value()
- {
- echo $(sed -n "s/.*<$2>\(.*\)<\/$2>.*/\1/p" <<<$1)
- return
- }
- gesperrt=$(tr ' ' '+' <<<"$gesperrt")
- ### SID Session ID ermitteln ###
- theLogin="https://$theServer/login_sid.lua"
- theChallenge=$(get_value "$(curl -sk $theLogin)" "Challenge")
- theResponse=$(echo "$theChallenge-$(echo -n "$theChallenge-$thePassword" | iconv -f UTF-8 -t UTF-16LE | md5 -q)")
- SID=$(get_value "$(curl -sk $theLogin -d username=$theUser -d response=$theResponse)" "SID")
- if [[ "$SID" == "0000000000000000" ]]; then
- echo "Fritzbox Login nicht erfolgreich, Passwort überprüfen"
- else
- case "$cmd" in
- 'sperren' )
- ret=$(curl -sk "https://$theServer/data.lua" -H "Referer: https://$theServer/" --compressed -H 'Content-Type: application/x-www-form-urlencoded' -H "Origin: https://$theServer/" -H 'Connection: keep-alive' --data-raw "xhr=1&urllist=$gesperrt&listtype=black&apply=&sid=$SID&lang=de&page=kids_blacklist")
- if grep -q "apply\":\"ok" <<<"$ret" ; then
- echo "Sperren erfolgreich"
- else
- echo "Fehler beim Sperren"
- fi
- ;;
- 'freigeben' )
- ret=$(curl -sk "https://$theServer/data.lua" -H "Referer: https://$theServer/" --compressed -H 'Content-Type: application/x-www-form-urlencoded' -H "Origin: https://$theServer/" -H 'Connection: keep-alive' --data-raw "xhr=1&urllist=&listtype=black&apply=&sid=$SID&lang=de&page=kids_blacklist")
- if grep -q "apply\":\"ok" <<<"$ret" ; then
- echo "Freigeben erfolgreich"
- else
- echo "Fehler beim Freigeben"
- fi
- ;;
- *)
- echo "Erlaubte Kommandos 'sperren' oder 'freigeben'"
- ;;
- esac
- fi