Thread: [Script request] o2 Homebox 6441
View Single Post
  #6  
Old 31.05.2016, 16:52
rbybbl
Guest
 
Posts: n/a
Default

Quote:
Originally Posted by Hober Mallow View Post
Sorry, da habe ich mich vielleicht etwas unklar ausgedrückt.

Zuerst hatte ich eine Homebox 6641. Dafür hatte ich hier auch ein Skript gefunden. Mit diesem Router funktionierte aber mein Telefon nicht. Deshalb hat o2 ihn gegen eine Homebox 6441 getauscht. Damit funktioniert zwar das Telefon aber der Reconnect nicht.

Also,
mein jetziger Router ist tatsächlich eine Homebox 6441.

Leider kann ich mit deiner Lösung nichts anfangen, da ich kein Windows benutze, sondern Linux.

Ich wage nicht zu offen, dass du auch dafür eine Lösung hast.
Naja, wenn Du Apache und PHP installierst, dann könntest Du mein PHP-Script benutzen
Aber extra einen Webserver nur für einen Router-Reconnect aufzusetzen ist vielleicht etwas übertrieben..

Bin mir nicht sicher, aber ich denke es sollte in Linux per Shellscript leicht zu lösen sein. Leider hab ich aber sehr wenig Linux-Erfahrung.

Eventuell könnte man doch ein Live-Headers-Script für JD schreiben (dazu müsste man das den Hashwert des Login-Passworts aber als Variable anlegen).
Ich versuche es mal bei Gelegenheit!

Edit: Mit Live-Headers-Script geht es leider nicht, da JD keine Möglichkeit bietet eine base64-Zeichenkette zu entschlüsseln :(

Edit 2:
Ok, habe ein Shell-Script erstellt. Es gibt bestimmt elegantere Wege das zu realisieren, hab praktisch keine Linux-Erfahrung, aber es funktioniert bei mir. Die Variable ROUTER_HOST erklärt sich von selbst, das Passwort muss als Hash-Wert vorliegen. Einen Hashwert kannst Du z.B. auf **External links are only visible to Support Staff**www.hashgenerator.de/ (hashgenerator punkt de) erstellen. Gib Dein Klartext-Passwort ein und erstelle einen MD5-Hash. Kopiere diesen (ohne Leerzeichen am Anfang und Ende) und benutze ihn als Input für ein SHA512-Hash. Das Ergebnis dann in die Variable ROUTER_PASS kopieren.

PHP Code:
#!/bin/sh
ROUTER_HOST="192.168.1.1"
ROUTER_PASS="b0f4337213779e16df1304962........................................................................."

# send login post request
curl --"pws=$ROUTER_PASS" "$ROUTER_HOST/login.cgi" > /dev/null

# get the token from index page and save as var
ROUTER_TOKEN=$(curl --silent "$ROUTER_HOST/" grep -ioP 'data:image/gif;base64,[a-z0-9+/]+///[a-z0-9+/]{31}\K([^"]+)' base64 --decode)

# send disconnect post request
curl --"action=wan_stop&httoken=$ROUTER_TOKEN" "$ROUTER_HOST/apply_abstract.cgi" > /dev/null

# to be sure
sleep 1

# send connect post request
curl --"action=wan_start&httoken=$ROUTER_TOKEN" "$ROUTER_HOST/apply_abstract.cgi" > /dev/null

# wait for connected state
while true
do
    if 
curl -"$ROUTER_HOST/cgi/cgi_diagnostic.js?_tn=$ROUTER_TOKENgrep -qiP '"nWANConnectStatus0",\s?"?\d+"?,\s?"Connected"'then
        
break
    
fi
    sleep 1
done
# send logout request
curl --"" "$ROUTER_HOST/logout.cgi" > /dev/null 

Last edited by rbybbl; 01.06.2016 at 22:06.
Reply With Quote