Thread: [Script request] o2 Homebox 6441
View Single Post
  #18  
Old 31.01.2017, 20:19
Teorax Teorax is offline
Modem User
 
Join Date: Jan 2017
Posts: 1
Default Shellskript zum reconnecten

Hi,

mit minimalen Änderungen funktioniert das Shellskript von rbybbl bei mir einwandfrei.

Evtl. geht auch das AutoIt skript von rbybbl wieder (falls es nicht geht momentan, ich kann das nicht testen), wenn man:

Code:
nWANConnectStatus0
durch

Code:
WANConnectStatus0
ersetzt. Die zugehörige Zeile aus "$ROUTER_HOST/cgi/cgi_diagnostic.js?_tn=$ROUTER_TOKEN" lautet zumindest

Code:
addCfg("WANConnectStatus0", "00000000000", "Connected");
Ich hoffe, das hilft weiter.

Hier meine komplette reconnect.sh zum kopieren. Gestestet auf FW 1.01.30
Router IP und Passworthash müssen nach wie vor angepasst werden.

Code:
#!/bin/sh
### O2 Homebox 2 (6441) Reconnect/Reboot script ###

ROUTER_HOST="192.168.1.X"
PWD_HASH="PASSWORD_HASH"

#### HOW TO CREATE PASSWORD_HASH ####
# Hash your router password with an MD5 function and the resulting sum with a sha512 function.
# shell command is
#
#
# echo PASSWORD | md5sum | cut -f 1 -d " " | sha512sum | cut -f 1 -d " "
#
#
####


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

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

# send reboot
#curl -d "action=ui_reboot&httoken=$ROUTER_TOKEN" "$ROUTER_HOST/apply_abstract.cgi"

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

# to be sure
sleep 1

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

# wait for connected state
while true
do
    if curl -s "$ROUTER_HOST/cgi/cgi_diagnostic.js?_tn=$ROUTER_TOKEN" | grep -qiP '"WANConnectStatus0",\s?"?\d+"?,\s?"Connected"'; then
		break
    fi
	sleep 3
done

# send logout request
curl -s -d "" "$ROUTER_HOST/logout.cgi" > /dev/null
Es sind von mir bloss ein paar Kommentare eingefügt und der regex für den Connection Status marginal angepasst worden. Geht bestimmt noch besser aber es läuft.

Gruß
Reply With Quote