Скрипт для автоматической перезагрузки роутера

Эта ветка закрыта для дальнейших ответов. Вы можете создать новую тему, чтобы поделиться своими идеями или задать вопросы.

Скрипт для автоматической перезагрузки роутера

Эта ветка закрыта для дальнейших ответов. Вы можете создать новую тему, чтобы поделиться своими идеями или задать вопросы.
23 Ответить
Re: Скрипт для автоматической перезагрузки роутера
2013-10-21 07:38:52
Итак, проблема решена. Выложу здесь полное решение, если кому интересно будет.
Почему так долго не получалось?
Во-первых, английская техподдержка на запрос "How i can reboot my device by bash script?"
ответила следующее: "this is not possible to reboot devices in a such way".
Ticket#2013101610000131


Во-вторых, этот модем при GET запросе проверяет:
1. Http basic авторизацию.
2. User-Agent браузера.
3. Корректное поле рефер, которое всегда будет просто http://IP адресом модема, т.к. модем использует редиректы.

Да, от использования wget пришлось отказаться.
  0  
  0  
#1
Опции
Re: Скрипт для автоматической перезагрузки роутера
2013-10-21 12:12:46
[quote="salp"]Итак, проблема решена. Выложу здесь полное решение, если кому интересно будет.
Почему так долго не получалось?
Во-первых, английская техподдержка на запрос "How i can reboot my device by bash script?"
ответила следующее: "this is not possible to reboot devices in a such way".

Во-вторых, этот модем при GET запросе проверяет:
1. Http basic авторизацию.
2. User-Agent браузера.
3. Корректное поле рефер, которое всегда будет просто http://IP адресом модема, т.к. модем использует редиректы.

Да, от использования wget пришлось отказаться.[/quote]
Мне ответили, что сами китайцы в целях усиления безопасности закрывают доступ по get запросам на новых прошивках.
На старых должно еще работать.

Так в итоге получилось перезагружать?
  0  
  0  
#1
Опции
Re: Скрипт для автоматической перезагрузки роутера
2013-10-21 12:19:09
[quote="абырвалг2"]Так в итоге получилось перезагружать?[/quote] Получилось. Все получилось - и перегружать и выключать vpn и включать vpn.
Зря китайцы все усложняли - толку все равно для безопасности нет.
Главное, соблюсти описанные мною выше 3 условия. Cookie не используются.
Остальные запросы не пробовал. [quote="абырвалг2"]Мне ответили, что сами китайцы в целях усиления безопасности закрывают доступ по get запросам на новых прошивках.[/quote] Не закрыли, а усложнили (немного).
Прошивка новая. На данный момент последняя 130705.
  0  
  0  
#1
Опции
Re: Скрипт для автоматической перезагрузки роутера
2013-11-24 16:52:07
Вы бы описали пошагово как решили эту проблему и каким ПО соблюсти ваши три условия.
  0  
  0  
#1
Опции
Re: Скрипт для автоматической перезагрузки роутера
2013-11-25 11:09:50
[quote="mnekin"]Вы бы описали пошагово как решили эту проблему и каким ПО соблюсти ваши три условия.[/quote] Выложил решение здесь (Скрипт удалённой перезагрузки WI-FI роутера TP-LINK TL-WR1042ND):
  0  
  0  
#1
Опции
Re: Скрипт для автоматической перезагрузки роутера
2013-11-25 11:59:47
Спасибо
  0  
  0  
#1
Опции
Re: Скрипт для автоматической перезагрузки роутера
2014-01-14 21:16:05
wget --http-user=%login% --http-password=%password% --user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" --referer=http://%router_ip%/userRpm/SysRebootRpm.htm http://%router_ip%/userRpm/SysRebootRpm.htm?Reboot=1

Вместо %login%, %password% и %router_ip% подставить соответственно логин, пароль и IP маршрутизатора :-)

WGET для Windows можно взять здесь: http://gnuwin32.sourceforge.net/packages/wget.htm, качать нужно "Complete package, except sources - Setup"
  0  
  0  
#1
Опции
Re: Скрипт для автоматической перезагрузки роутера
2014-08-14 18:49:31
[quote="Scorokhod"]wget --http-user=%login% --http-password=%password% --user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" --referer=http://%router_ip%/userRpm/SysRebootRpm.htm http://%router_ip%/userRpm/SysRebootRpm.htm?Reboot=1 [/quote] Немного развил тему...
Теперь работает на android ))
Для андроид в данном изложении требуется root. Если нет рута.. то в конце checknet заменить на step1
janvarry@gmail.com если что - пишите..

--manual
Requirements:

Установить Busybox
и Android Terminal emulator
--to do list
Перемонтировать/system на запись "su -c mount rw,remount /system"
Поместить допустим в /system/script,"su -c chmod 0777 /system/script/"
Дать скрипту права на исполнение "su -c chmod 0755 /system/script/ping2.sh"
Добавить в автозапуск в настройках терминала.

у меня работает в машине как переподключение,затем перезагрузка wifi после трёх фейлов...

если что - пишите janvarry@gmail.com

-----ping2.sh
#!/system/bin/sh
pingip=8.8.8.8
login=admin #Username
password=admin #Password
router_ip=192.168.0.1 #Ip of router
sleep_time=30 #Time to next check
sleep_rbt_time=70 #Time to waiting of reboot
f1=10 #First pause in sec
f2=30 #Second pause in sec
increment=0
b64_auth=$(echo $login:$password | base64|rev|cut -c 2-|rev)
network=toyota #SSID name of wifi

while true
do

function checknet()
{
ssid=0
while [ "$ssid" != "$network" ]
do
ssid=$(su -c dumpsys wifi|grep "* ID:"|cut -f 2 -d \")
echo ssid=$ssid
echo network=$network
if [ "$ssid" = "$network" ]; then
echo "Correct Wifi Network"
else
echo "False Wifi Network,press Enter key"
read -rs
fi
done
}

function slp()

{
increment=0
echo "will sleep $sleep_time sec"
sleep $sleep_time #check again
}

function wifi_conn()
{
echo modem reconnect
printf "GET /userRpm/StatusRpm.htm?Disconnect=Disconnect&wan=1 HTTP/1.0\r\nReferer: http://$router_ip/userRpm/StatusRpm.htm\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.1.1650.63 Safari/537.36\r\nAccept: */*\r\nHost: $router_ip\r\nConnection: Keep-Alive\r\nAuthorization: Basic $b64_auth=\r\n\r\n"|nc -w 5 -i 1 $router_ip 80 >/dev/nul
printf "GET /userRpm/StatusRpm.htm?Connect=Connect&wan=1 HTTP/1.0\r\nReferer: http://$router_ip/userRpm/StatusRpm.htm\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.1.1650.63 Safari/537.36\r\nAccept: */*\r\nHost: $router_ip\r\nConnection: Keep-Alive\r\nAuthorization: Basic $b64_auth=\r\n\r\n"|nc -w 5 -i 1 $router_ip 80 >/dev/nul
}

function wifi_rst()
{
#echo LOGIN:$b64_auth=
increment=$(( $increment +1 ))
echo Reboot Times=$increment

if [ "$increment" -eq 3 ]; then
echo "We Already Reboot = $increment times"
echo "We Stop Rebooting"
read -rs $'Press any key to continue monitoring...\n' -n1 key
else
printf "GET /userRpm/SysRebootRpm.htm?Reboot=1 HTTP/1.0\r\nReferer: http://$router_ip/userRpm/SysRebootRpm.htm\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.1.1650.63 Safari/537.36\r\nAccept: */*\r\nHost: $router_ip\r\nConnection: Keep-Alive\r\nAuthorization: Basic $b64_auth=\r\n\r\n"|nc -w 5 -i 1 $router_ip 80 >/dev/nul
echo "Now reboot request was send,will sleep $sleep_rbt_time sec"
sleep $sleep_rbt_time
fi
}
checknet

if ping -c 1 $pingip >/dev/null
then
echo "all good step 1"
slp
else
if ping -c 1 $router_ip >/dev/null
then
echo Router is pinging - channel is down
else
echo Router is down - channel is down
increment = 3
wifi_rst
fi
echo Bad Ass step 1 - will wait $f1 sec!
sleep $f1 #give it a few seconds to complete
fi

if ping -c 1 $pingip >/dev/null
then
echo "all good step 2"
slp
else
echo Bad Ass step 2 - will wait $f2 sec!
sleep $f2 #give it a few seconds to complete
fi

if ping -c 1 $pingip >/dev/null
then
echo "all good step 3 "
slp
else
wifi_conn
echo Bad Ass step 3 - Reconnect!
wifi_conn
fi

if ping -c 1 $pingip >/dev/null
then
echo "all good step 4 "
slp
else
echo Bad Ass step 3 - Reconnect!
wifi_rst
fi
done
  0  
  0  
#1
Опции
Re: Скрипт для автоматической перезагрузки роутера
2015-04-08 08:14:13
не работает, выручайте.

ну конечно не хватает слеша тут
—referer=http://192.168.1.1/userRpm/DateTimeCfgRpm.htm http:/192.168.1.1/userRpm/
  0  
  0  
#1
Опции
Re: Скрипт для автоматической перезагрузки роутера
2015-04-08 15:05:18
[quote="anatolysn"]не работает, выручайте. [/quote] У Вас ошибка - во втором случае вместо http:/192.168.1.1 должно быть http://192.168.1.1
  0  
  0  
#1
Опции