- Mitglied seit
- 7 Aug 2007
- Beiträge
- 611
- Punkte für Reaktionen
- 6
- Punkte
- 18
Wie Bash Skript am besten von der Fritz!Box ausführen lassen?
[Edit Novize: Zusammen gefasst, was zusammen gehört]
Ich bin derzeit in einer Wohnung wo es nur ein Wlan von meinhotspot.com gibt.
Dort muss man alle 2 Stunden die Nutzungsbedingungen akzeptieren.
Ich habe hier nun 2 verschiedene Skripte.
Eins schaut wann der ein wiederholter Login möglich ist und wenn es mehr als 5 Minuten ist, dann schläft es bis 1 Minute (mit sleep) vor dem Zwangslogout und ruft sich dann selbst wieder auf und loggt sich aus, wartet eine Sekunde und loggt sich dann wieder ein.
Das Skript läuft seit gestern abend auf einem Ubuntu 16.04 Rechner und funktioniert gut.
Das gleiche Skript habe ich auch noch in abgespeckter Form, dass nur kontrolliert, ob es noch weniger als 5 Minuten sind und sonst einfach sich beendet.
Nun ist die Frage was besser ist.
Macht es der Fritz!Box was aus, wenn ein Prozess die ganze Zeit mit einem Sleep wartet?
meinhotspotschleife.sh
meinhotspot.sh
Meine Idee ist in die rc.custom /var/media/ftp/FRITZ/meinhotspotschleife.sh ein zu tragen, spricht irgendwas dagegen?
[Edit Novize: Zusammen gefasst, was zusammen gehört]
Ich bin derzeit in einer Wohnung wo es nur ein Wlan von meinhotspot.com gibt.
Dort muss man alle 2 Stunden die Nutzungsbedingungen akzeptieren.
Ich habe hier nun 2 verschiedene Skripte.
Eins schaut wann der ein wiederholter Login möglich ist und wenn es mehr als 5 Minuten ist, dann schläft es bis 1 Minute (mit sleep) vor dem Zwangslogout und ruft sich dann selbst wieder auf und loggt sich aus, wartet eine Sekunde und loggt sich dann wieder ein.
Das Skript läuft seit gestern abend auf einem Ubuntu 16.04 Rechner und funktioniert gut.
Das gleiche Skript habe ich auch noch in abgespeckter Form, dass nur kontrolliert, ob es noch weniger als 5 Minuten sind und sonst einfach sich beendet.
Nun ist die Frage was besser ist.
Macht es der Fritz!Box was aus, wenn ein Prozess die ganze Zeit mit einem Sleep wartet?
meinhotspotschleife.sh
Code:
#!/bin/sh
BODY="dst=https%3A%2F%2Fconnect.meinhotspot.com%2Fde%2Fclient%2Fredirect&popup=true&username=XX%XXXX%XXXX%XXXX%XXXX%XXXX&password=XX%XXXX%XXXX%XXXX%XXXX%XXXX&mac=XX%XXXX%XXXX%XXXX%XXXX%XXXX"
wget -q -O- login.meinhotspot.com/login | grep 'Sie wurden soeben auf dem Hotspot eingeloggt und werden weitergeleitet.'
rc=$?
if [ $rc -ne 0 ]
then
echo "POST /login HTTP/1.1\r\nHost: login.meinhotspot.com\r\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nReferer: https://connect.meinhotspot.com/en/client/welcome\r\nConnection: Close\r\nUpgrade-Insecure-Requests: 1\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ${#BODY}\r\n\r\n${BODY}" | nc login.meinhotspot.com 80
sleep 10
exec "./$0"
else
time=`wget -q -O- login.meinhotspot.com/status | grep "s</td" | sed 's/<[^>]*>//g' | sed 's/\t//g' | cut -f3 -d"/"`
echo $time | grep "h"
rc=$?
if [ $rc -eq 0 ]
then
hour=`echo $time | cut -f1 -d"h"`
echo $time | grep "m"
rc=$?
if [ $rc -eq 0 ]
then
minute=$((`echo $time | cut -f2 -d"h" | cut -f1 -d"m"`+$hour*60))
else
minute=$(($hour*60))
fi
else
echo $time | grep "m"
rc=$?
if [ $rc -eq 0 ]
then
minute=`echo $time | cut -f1 -d"m"`
else
minute=1
fi
fi
if [ $minute -lt 5 ]
then
echo "weniger als 5 Minuten"
wget -qO- login.meinhotspot.com/logout &>/dev/null
#BODY_LEN=$( echo -n ${BODY} | wc -c )
#echo $BODY_LEN
#echo ${#BODY}
sleep 1
echo "POST /login HTTP/1.1\r\nHost: login.meinhotspot.com\r\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nReferer: https://connect.meinhotspot.com/en/client/welcome\r\nConnection: Close\r\nUpgrade-Insecure-Requests: 1\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ${#BODY}\r\n\r\n${BODY}" | nc login.meinhotspot.com 80
sleep 10
exec "./$0"
else
echo "mehr als 5 Minuten"
#echo $minute
seconds=$((minute*60-60))
#echo $seconds
sleep $seconds
exec "./$0"
fi
fi
meinhotspot.sh
Code:
#!/bin/sh
BODY="dst=https%3A%2F%2Fconnect.meinhotspot.com%2Fde%2Fclient%2Fredirect&popup=true&username=XX%XXXX%XXXX%XXXX%XXXX%XXXX&password=XX%XXXX%XXXX%XXXX%XXXX%XXXX&mac=XX%XXXX%XXXX%XXXX%XXXX%XXXX"
wget -q -O- login.meinhotspot.com/login | grep 'Sie wurden soeben auf dem Hotspot eingeloggt und werden weitergeleitet.'
rc=$?
if [ $rc -ne 0 ]
then
echo "POST /login HTTP/1.1\r\nHost: login.meinhotspot.com\r\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nReferer: https://connect.meinhotspot.com/en/client/welcome\r\nConnection: Close\r\nUpgrade-Insecure-Requests: 1\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ${#BODY}\r\n\r\n${BODY}" | nc login.meinhotspot.com 80
else
time=`wget -q -O- login.meinhotspot.com/status | grep "s</td" | sed 's/<[^>]*>//g' | sed 's/\t//g' | cut -f3 -d"/"`
echo $time | grep "h"
rc=$?
if [ $rc -eq 0 ]
then
hour=`echo $time | cut -f1 -d"h"`
echo $time | grep "m"
rc=$?
if [ $rc -eq 0 ]
then
minute=$((`echo $time | cut -f2 -d"h" | cut -f1 -d"m"`+$hour*60))
else
minute=$(($hour*60))
fi
else
echo $time | grep "m"
rc=$?
if [ $rc -eq 0 ]
then
minute=`echo $time | cut -f1 -d"m"`
else
minute=1
fi
fi
if [ $minute -lt 5 ]
then
echo "weniger als 5 Minuten"
wget -qO- login.meinhotspot.com/logout &>/dev/null
#BODY_LEN=$( echo -n ${BODY} | wc -c )
#echo $BODY_LEN
#echo ${#BODY}
sleep 1
echo "POST /login HTTP/1.1\r\nHost: login.meinhotspot.com\r\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nReferer: https://connect.meinhotspot.com/en/client/welcome\r\nConnection: Close\r\nUpgrade-Insecure-Requests: 1\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ${#BODY}\r\n\r\n${BODY}" | nc login.meinhotspot.com 80
else
echo "mehr als 5 Minuten"
fi
fi
Meine Idee ist in die rc.custom /var/media/ftp/FRITZ/meinhotspotschleife.sh ein zu tragen, spricht irgendwas dagegen?
Zuletzt bearbeitet: