Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 21 bis 40 von 42

Thema: automatisierte meinhotspot.com Anmeldung durch die Fritzbox.

  1. #21
    IPPF-Fan
    Registriert seit
    07.08.2007
    Beiträge
    389

    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
    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?
    Geändert von JokerGermany (14.03.2017 um 17:48 Uhr)

  2. #22
    IPPF-Fan
    Registriert seit
    04.01.2016
    Beiträge
    168
    IMHO sind da zwei Hürden zu überwinden: 1.) die FritzBox muß dazu "überredet" werden, dass die Datei rc.custom während des Booten-Vorgangs ausgeführt wird2.) es fehlen Binaries wie netcat/nc oder curl; Beides könnte u.a. durch ein gefreeztes Image bereitgestellt werden.

  3. #23
    IPPF Achttausend-VIP Avatar von koyaanisqatsi
    Registriert seit
    24.01.2013
    Ort
    Berlin (Neukölln)
    Beiträge
    8.811
    Moin

    Wenn dann bitte mit: delay
    Siehe: delay -?
    Beispiel:
    Code:
    delay MHSPOT -d 10 'echo "hallo" > /dev/pts/0'
    (Beispiel ist keine Schleife, wird also genau 1x ausgeführt)
    Siehtste (innerhalb von 10 Sekunden) in der Prozesstabelle mit: ps
    Geändert von koyaanisqatsi (14.03.2017 um 18:17 Uhr)
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt (Albert E.) mfg koy
    Anschluss: 1&1 Komplett VDSL 50/10 DS
    Fritz!Box: 7560 FRITZ!OS 6.83 & 6.52 & 1x 7112 (WDS Basis), 3x 7113 (Repeater)
    Telefonie: Rotes Posttelefon, 2x snom320-SIP 8.7.5.44, 2x (billig) DECT, 1x Fax (MuFuG)

    SmartHome: SensorAndSwitch auf Rasperry Pi mit OSMC/KODI (Jessie/Sarge)

  4. #24
    IPPF-Fan
    Registriert seit
    07.08.2007
    Beiträge
    389
    Zitat Zitat von Shirocco88 Beitrag anzeigen
    IMHO sind da zwei Hürden zu überwinden: 1.) die FritzBox muß dazu "überredet" werden, dass die Datei rc.custom während des Booten-Vorgangs ausgeführt wird2.) es fehlen Binaries wie netcat/nc oder curl; Beides könnte u.a. durch ein gefreeztes Image bereitgestellt werden.

    Die Fritz!Box ist selbstverständlich gefreetzt. In der RC-Custom wird schon das datum gesetzt, sie wird also schon verwendet und nc scheint vorhanden
    Code:
    nc
    BusyBox v1.24.2 (2017-02-03 16:10:54 CET) multi-call binary.
    
    Usage: nc [-iN] [-wN] [-f FILE|IPADDR PORT] [-e PROG]
    
    Open a pipe to IP:PORT or FILE
    
            -w SEC  Connect timeout
            -i SEC  Delay interval for lines sent
            -f FILE Use file (ala /dev/ttyS0) instead of network
            -e PROG Run PROG after connect
    Allerdings war bisher das Shebang falsch, sodass ich es leider in der falschen Shell getestet habe und somit ist der nc Befehl leider noch nicht lauffähig...

    Zitat Zitat von koyaanisqatsi Beitrag anzeigen
    Moin

    Wenn dann bitte mit: delay
    Siehe: delay -?
    Beispiel:
    Code:
    delay MHSPOT -d 10 'echo "hallo" > /dev/pts/0'
    Siehtste in der Prozesstabelle mit: ps
    Du meinst also statt echo "hallo" lasse ich das Script ausführen?
    Sowohl im Script, als auch in der rc.custom?

  5. #25
    IPPF Achttausend-VIP Avatar von koyaanisqatsi
    Registriert seit
    24.01.2013
    Ort
    Berlin (Neukölln)
    Beiträge
    8.811
    Yep, delay startet dann dein Skript mit: sh
    ...muss also kein SHEBANG haben und braucht somit auch kein: x

    Kannst ihm aber mit env den PATH übergeben, zum Beispiel...
    Code:
    delay MHSPOT -d 10 '/usr/bin/env -i PATH=/var/tmp/bin /var/tmp/bin/meinhotspotschleife.sh'
    Geändert von koyaanisqatsi (14.03.2017 um 18:27 Uhr)
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt (Albert E.) mfg koy
    Anschluss: 1&1 Komplett VDSL 50/10 DS
    Fritz!Box: 7560 FRITZ!OS 6.83 & 6.52 & 1x 7112 (WDS Basis), 3x 7113 (Repeater)
    Telefonie: Rotes Posttelefon, 2x snom320-SIP 8.7.5.44, 2x (billig) DECT, 1x Fax (MuFuG)

    SmartHome: SensorAndSwitch auf Rasperry Pi mit OSMC/KODI (Jessie/Sarge)

  6. #26
    IPPF-Fan
    Registriert seit
    07.08.2007
    Beiträge
    389
    ok, danke probier ich gleich mal aus, musste am echo noch den Parameter -ne für die #!/bin/sh Shell angeben, script sollte jetzt wieder funktionieren

    - - - Aktualisiert - - -

    Spricht was dagegen, dass Script einfach in /var/media/ftp/FRITZ auf zu bewahren?

  7. #27
    IPPF Achttausend-VIP Avatar von koyaanisqatsi
    Registriert seit
    24.01.2013
    Ort
    Berlin (Neukölln)
    Beiträge
    8.811
    Ja, ein Recovery oder laden der Werkseinstellung
    ...ansonsten nicht.
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt (Albert E.) mfg koy
    Anschluss: 1&1 Komplett VDSL 50/10 DS
    Fritz!Box: 7560 FRITZ!OS 6.83 & 6.52 & 1x 7112 (WDS Basis), 3x 7113 (Repeater)
    Telefonie: Rotes Posttelefon, 2x snom320-SIP 8.7.5.44, 2x (billig) DECT, 1x Fax (MuFuG)

    SmartHome: SensorAndSwitch auf Rasperry Pi mit OSMC/KODI (Jessie/Sarge)

  8. #28
    IPPF-Fan
    Registriert seit
    07.08.2007
    Beiträge
    389
    Mal abgesehen, dass ich dieses Doofe Skript nur bis Anfang April brauche:
    /var/tmp/bin/ hört sich sehr temporär an, wo würdest du die Datei denn hinpacken?

  9. #29
    IPPF Achttausend-VIP Avatar von koyaanisqatsi
    Registriert seit
    24.01.2013
    Ort
    Berlin (Neukölln)
    Beiträge
    8.811
    Ich hab an meiner 7560 mit einen USB-Anschluss einen aktiven HUB.
    Screenshot_2017-03-14-19-48-52.png
    ...von daher: /var/media/ftp/myext3/scripts
    Geändert von koyaanisqatsi (14.03.2017 um 18:54 Uhr)
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt (Albert E.) mfg koy
    Anschluss: 1&1 Komplett VDSL 50/10 DS
    Fritz!Box: 7560 FRITZ!OS 6.83 & 6.52 & 1x 7112 (WDS Basis), 3x 7113 (Repeater)
    Telefonie: Rotes Posttelefon, 2x snom320-SIP 8.7.5.44, 2x (billig) DECT, 1x Fax (MuFuG)

    SmartHome: SensorAndSwitch auf Rasperry Pi mit OSMC/KODI (Jessie/Sarge)

  10. #30
    IPPF-Fan
    Registriert seit
    07.08.2007
    Beiträge
    389
    ok, mir reicht das erstmal im internen Speicher.
    Geändert von JokerGermany (14.03.2017 um 19:15 Uhr)

  11. #31
    IPPF Achttausend-VIP Avatar von koyaanisqatsi
    Registriert seit
    24.01.2013
    Ort
    Berlin (Neukölln)
    Beiträge
    8.811
    Weil du dem delay nicht mit '-d [Start in Sekunden]' mitgeteilt hast wann es losgehen soll?
    ...oder dein Skript wird ohne komplette Pfadangabe schlicht nicht gefunden?
    Geändert von koyaanisqatsi (14.03.2017 um 19:17 Uhr)
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt (Albert E.) mfg koy
    Anschluss: 1&1 Komplett VDSL 50/10 DS
    Fritz!Box: 7560 FRITZ!OS 6.83 & 6.52 & 1x 7112 (WDS Basis), 3x 7113 (Repeater)
    Telefonie: Rotes Posttelefon, 2x snom320-SIP 8.7.5.44, 2x (billig) DECT, 1x Fax (MuFuG)

    SmartHome: SensorAndSwitch auf Rasperry Pi mit OSMC/KODI (Jessie/Sarge)

  12. #32
    IPPF-Fan
    Registriert seit
    07.08.2007
    Beiträge
    389
    Zitat Zitat von koyaanisqatsi Beitrag anzeigen
    Weil du dem delay nicht mit '-d [Start in Sekunden]' mitgeteilt hast wann es losgehen soll?
    ...oder dein Skript wird ohne komplette Pfadangabe schlicht nicht gefunden?
    Aber wenn das script vorher ausführbar gemacht wurde und man im telnet
    Code:
    delay MHSPOT '/var/media/ftp/FRITZ/meinhotspotschleife.sh  > /var/media/ftp/FRITZ/meinhotspot.log'
    ausführt wird es genau einmal ausgeführt, danach nicht mehr...

    Code:
    #!/bin/sh
    BODY="dst=https%3A%2F%2Fconnect.meinhotspot.com%2Fde%2Fclient%2Fredirect&popup=true&username=XX%3AXX%3AXX%3AXX%3AXX%3AXX&password=XX%3AXX%3AXX%3AXX%3AXX%3AXX&mac=XX%3AXX%3AXX%3AXX%3AXX%3AXX"
    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
        delay -d 10 MHSPOT '/var/media/ftp/FRITZ/meinhotspotschleife.sh  > /var/media/ftp/FRITZ/meinhotspot.log'
    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
            delay -d 10 MHSPOT '/var/media/ftp/FRITZ/meinhotspotschleife.sh  > /var/media/ftp/FRITZ/meinhotspot.log'
        else
            echo "mehr als 5 Minuten"
            #echo $minute
            seconds=$((minute*60-60))
            #echo $seconds
            #sleep $seconds
            delay -d 10 MHSPOT '/var/media/ftp/FRITZ/meinhotspotschleife.sh  > /var/media/ftp/FRITZ/meinhotspot.log'
        fi
    fi

  13. #33
    IPPF Achttausend-VIP Avatar von koyaanisqatsi
    Registriert seit
    24.01.2013
    Ort
    Berlin (Neukölln)
    Beiträge
    8.811
    Vielleicht muss das Skript noch vom delay abgekoppelt werden?
    ala (Kaufmännisches UND)
    Code:
    delay MHSPOT -d 10 '/var/media/ftp/FRITZ/meinhotspotschleife.sh > /var/media/ftp/FRITZ/meinhotspot.log &'
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt (Albert E.) mfg koy
    Anschluss: 1&1 Komplett VDSL 50/10 DS
    Fritz!Box: 7560 FRITZ!OS 6.83 & 6.52 & 1x 7112 (WDS Basis), 3x 7113 (Repeater)
    Telefonie: Rotes Posttelefon, 2x snom320-SIP 8.7.5.44, 2x (billig) DECT, 1x Fax (MuFuG)

    SmartHome: SensorAndSwitch auf Rasperry Pi mit OSMC/KODI (Jessie/Sarge)

  14. #34
    IPPF Siebentausend-VIP Avatar von PeterPawn
    Registriert seit
    10.05.2006
    Ort
    Berlin
    Beiträge
    7.937
    Das AVM-Kommando "delay" startet nur nach einer einstellbaren Verzögerung (über den "multid" von AVM, der muß also auch durchlaufen, damit so ein Auftrag erfolgreich gestartet wird) das angegebene Kommando ... mehr nicht. Wer da also etwas Regelmäßiges daraus machen will, der muß dann erneut "delay" aus dem ausgeführten Skript heraus aufrufen.

    Ein Beispiel, wie man das machen kann, steht hier: https://github.com/PeterPawn/YourFri...e_start.sh#L36 - es ist nämlich entscheidend, daß man als "ID" (siehe Aufruf von "delay -h") eine Zeichenkette verwendet für den nächsten "Job", die sich von der des laufenden Auftrags unterscheidet.

    Ansonsten ändert der "multid" offenbar nur den aktuell laufenden Auftrag (zwei Aufrufe mit identischer ID vor dem Start des ersten führen zu einer geänderten Startzeit/Verzögerung und nicht zu einem zweiten Auftrag) und der wird kurze Zeit später ohnehin beendet.

  15. #35
    IPPF-Fan
    Registriert seit
    07.08.2007
    Beiträge
    389
    Hilft auch nicht =(

    Im Script funktioniert delay scheinbar einfach nicht, werde nochmal nen Testscript bauen mit nur delay welches nen echo aufruft.

    Aber ich kann das aktuelle Script mit
    Code:
    delay MHSPOT '/var/media/ftp/FRITZ/meinhotspotschleife.sh'
    aufrufen

    dann gehts weiter mit
    Code:
    #!/bin/sh
    exec > /var/media/ftp/FRITZ/meinhotspot.log
    BODY="dst=https%3A%2F%2Fconnect.meinhotspot.com%2Fde%2Fclient%2Fredirect&popup=true&username=XX%3AXX%3AXX%3AXX%3AXX%3AXX&password=XX%3AXX%3AXX%3AXX%3AXX%3AXX&mac=XX%3AXX%3AXX%3AXX%3AXX%3AXX"
    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 -ne "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 -ne "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
    Ergebnis scheint auf dem ersten Blick zu klappen:

    Code:
     6875 root      1532 S    sh -c /var/media/ftp/FRITZ/meinhotspotschleife.sh 
     6876 root      1544 S    {meinhotspotschl} /bin/sh /var/media/ftp/FRITZ/meinh
     6896 root      1524 S    {busybox} sleep 5340
    - - - Aktualisiert - - -

    Was wäre eigentlich der Vorteil von delay?

  16. #36
    IPPF Siebentausend-VIP Avatar von PeterPawn
    Registriert seit
    10.05.2006
    Ort
    Berlin
    Beiträge
    7.937
    Zitat Zitat von JokerGermany Beitrag anzeigen
    Im Script funktioniert delay scheinbar einfach nicht [...]
    Das ist definitiv falsch und ich hoffe nicht, daß sich spätere Leser von dieser Vermutung "anstecken" lassen - zur Notwendigkeit unterschiedlicher IDs für den erneuten Aufruf von "delay" aus einem per "delay" gestarteten Skript heraus, habe ich bereits etwas geschrieben.

  17. #37
    IPPF-Fan
    Registriert seit
    07.08.2007
    Beiträge
    389
    sry hatte deinen post nicht gelesen

    - - - Aktualisiert - - -

    Warum nutzt du in deinem Script LV\$RAND und nicht nur $RAND?

  18. #38
    IPPF Siebentausend-VIP Avatar von PeterPawn
    Registriert seit
    10.05.2006
    Ort
    Berlin
    Beiträge
    7.937
    "LV" ist nur ein Präfix, damit ich noch weiß, um welches Skript es sich handelt und weil bei zwei verschiedenen Skripten, die innerhalb derselben Sekunde eine neue Instanz von sich selbst zu einem späteren Zeitpunkt anstoßen wollen, das Ergebnis von "date +%s" (die Anzahl der Sekunden seit dem 01.01.1970) auch nach "md5sum" und dem "Abschneiden" auf irgendeine beliebige (identische) Anzahl von Stellen immer noch dasselbe wäre und somit das Skript gewinnen würde, welches als letztes das "delay"-Kommando aufgerufen hat.

    Der Backslash ist der Tatsache geschuldet, daß ich dort ein "inline file" verwende, das - inkl. Variablenauflösung - in eine temporäre Skript-Datei geschrieben wird. Da am Ende in der Zieldatei die Zeichenkette "LV$RAND" landen soll, muß das Dollarzeichen eben "maskiert" werden für das "cat"-Kommando, sonst würde bereits dabei die Variable "$RAND" aufgelöst und die ist zum fraglichen Zeitpunkt leer - damit würde im Skript nur ein "LV" landen.

  19. #39
    IPPF-Fan
    Registriert seit
    07.08.2007
    Beiträge
    389
    Sieht man delay mit ps?
    Geändert von JokerGermany (14.03.2017 um 22:21 Uhr)

  20. #40
    IPPF Siebentausend-VIP Avatar von PeterPawn
    Registriert seit
    10.05.2006
    Ort
    Berlin
    Beiträge
    7.937
    Zitat Zitat von JokerGermany Beitrag anzeigen
    das Ergebnis bleibt leider relativ lange gleich
    Das kann aber nicht sein, wenn Du $RAND so ermittelst, wie ich das getan habe (ggf. noch mit zwei Stellen mehr, ich schneide dort bereits nach 6 Stellen ab). Das "md5sum" macht bereits aus zwei unmittelbar aufeinanderfolgenden Zeiten absolut unterschiedliche Zeichenketten (mit nur sehr geringen Aussichten, daß die ersten 6 - besser wären vielleicht 8 - Stellen identisch sind).

    Code:
     $ for i in $(seq 1 10); do time=$(date +%s); echo -n "$time ==> "; echo -n $time | md5sum | sed -ne "s|^\([a-f0-9]\{8\}\).*\$|\1|p"; sleep 1; done
    1489529905 ==> f974c640
    1489529906 ==> 3a1a9810
    1489529907 ==> 5845a534
    1489529909 ==> 2f70a85e
    1489529910 ==> 0ab64fce
    1489529911 ==> 8540ce68
    1489529912 ==> 3a4a3a34
    1489529913 ==> 065f4312
    1489529914 ==> 0e4387ad
    1489529915 ==> 62b75b47
    Da hast Du also vermutlich etwas falsch gemacht.

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Ähnliche Themen

  1. [Gelöst] Asterisk hinter Fritzbox automatisierte Anrufe
    Von OberstvonGatow im Forum Asterisk Allgemein
    Antworten: 13
    Letzter Beitrag: 27.11.2013, 06:45
  2. Automatisierte Anrufe durch Software
    Von lretter im Forum Spaßzeugs bitte hier rein!
    Antworten: 16
    Letzter Beitrag: 31.03.2013, 18:00
  3. Automatisierte telefonate führen
    Von thisismyname im Forum Asterisk Allgemein
    Antworten: 6
    Letzter Beitrag: 25.09.2008, 16:08
  4. Antworten: 10
    Letzter Beitrag: 17.08.2006, 18:58

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •