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

Беспроводной гигабитный маршрутизатор серии N со скоростью передачи данных до 300 Мбит/с
salp
Сообщения: 12
Зарегистрирован: 12 окт 2013, 12:32
Страна: Украина
Контактная информация:

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

Сообщение salp » 12 окт 2013, 12:40

Аппаратная версия устройства: v1 00000000
Версия прошивки: 3.15.3 Build 130705 Rel.55616n
Ваша страна: Украина
Название провайдера: LDS
Тип подключения: PPPoE
Скорость по тарифу: 10
Подключение с ПК по wifi или по кабелю?: PK

Нужна перезагрузка командой, не вручную

Из браузера
http://admin:admin@192.168.0.1/userRpm/SysRebootRpm.htm?Reboot=reboot:15
Не срабатывает, пишет:
You have no authority to access this router!

Хотя, так входит нормально: http://admin:admin@192.168.0.1

Больше интересует перезагрузка из линукса, но так не срабатывает:
wget --http-user=admin --http-password=admin --post-data="reboot=true" http://192.168.0.1/userRpm/SysRebootRpm.htm
пишет:

Connecting to 192.168.0.1:80... connected.
HTTP request sent, awaiting response... 401 N/A
Reusing existing connection to 192.168.0.1:80.
HTTP request sent, awaiting response... 200 No headers, assuming HTTP/0.9
Length: unspecified
Saving to: `SysRebootRpm.htm'

[ <=>

2013-10-12 11:14:30 (66.0 MB/s) - `SysRebootRpm.htm.1' saved [2590]
mykrasa.com

salp
Сообщения: 12
Зарегистрирован: 12 окт 2013, 12:32
Страна: Украина
Контактная информация:

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

Сообщение salp » 17 окт 2013, 18:21

абырвалг2 писал(а): Но тогда бы наверно не работали все запросы, а у вас Disconnect/Connect работает...
Логично, но ребут почему-то работает по-другому и так просто не срабатывает.
У Вас есть 1042 чтобы проверить? Может, поставить английскую прошивку (есть маленькая надежда)?
mykrasa.com

salp
Сообщения: 12
Зарегистрирован: 12 окт 2013, 12:32
Страна: Украина
Контактная информация:

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

Сообщение salp » 21 окт 2013, 11:38

Итак, проблема решена. Выложу здесь полное решение, если кому интересно будет.
Почему так долго не получалось?
Во-первых, английская техподдержка на запрос "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 пришлось отказаться.
Последний раз редактировалось salp 21 окт 2013, 16:44, всего редактировалось 2 раза.
mykrasa.com

абырвалг2
Сообщения: 322
Зарегистрирован: 15 июн 2012, 12:13
Страна: Россия
Откуда: wewqrdwqf
Контактная информация:

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

Сообщение абырвалг2 » 21 окт 2013, 16:12

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 пришлось отказаться.
Мне ответили, что сами китайцы в целях усиления безопасности закрывают доступ по get запросам на новых прошивках.
На старых должно еще работать.

Так в итоге получилось перезагружать?
Инеблагодари

salp
Сообщения: 12
Зарегистрирован: 12 окт 2013, 12:32
Страна: Украина
Контактная информация:

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

Сообщение salp » 21 окт 2013, 16:19

абырвалг2 писал(а):Так в итоге получилось перезагружать?
Получилось. Все получилось - и перегружать и выключать vpn и включать vpn.
Зря китайцы все усложняли - толку все равно для безопасности нет.
Главное, соблюсти описанные мною выше 3 условия. Cookie не используются.
Остальные запросы не пробовал.
абырвалг2 писал(а):Мне ответили, что сами китайцы в целях усиления безопасности закрывают доступ по get запросам на новых прошивках.
Не закрыли, а усложнили (немного).
Прошивка новая. На данный момент последняя 130705.
http://www.tp-linkru.com/support/downlo ... version=V1
mykrasa.com

mnekin
Сообщения: 5
Зарегистрирован: 20 ноя 2013, 12:52
Страна: Кыргызстан

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

Сообщение mnekin » 24 ноя 2013, 20:52

Вы бы описали пошагово как решили эту проблему и каким ПО соблюсти ваши три условия.

salp
Сообщения: 12
Зарегистрирован: 12 окт 2013, 12:32
Страна: Украина
Контактная информация:

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

Сообщение salp » 25 ноя 2013, 15:09

mnekin писал(а):Вы бы описали пошагово как решили эту проблему и каким ПО соблюсти ваши три условия.
Выложил решение здесь (Скрипт удалённой перезагрузки WI-FI роутера TP-LINK TL-WR1042ND):
https://webkabi.net/skript-udalyonnoj-p ... l-wr1042nd
Последний раз редактировалось salp 14 ноя 2018, 12:54, всего редактировалось 1 раз.
mykrasa.com

mnekin
Сообщения: 5
Зарегистрирован: 20 ноя 2013, 12:52
Страна: Кыргызстан

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

Сообщение mnekin » 25 ноя 2013, 15:59

Спасибо

Scorokhod
Сообщения: 1
Зарегистрирован: 15 янв 2014, 01:08
Страна: Россия

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

Сообщение Scorokhod » 15 янв 2014, 01:16

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"

neolead
Сообщения: 1
Зарегистрирован: 14 авг 2014, 22:32
Страна: Россия

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

Сообщение neolead » 14 авг 2014, 22:49

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
Немного развил тему...
Теперь работает на android ))
Для андроид в данном изложении требуется root. Если нет рута.. то в конце checknet заменить на step1
janvarry@gmail.com если что - пишите..

--manual
Requirements:

Установить Busybox https://play.google.com/store/apps/deta ... on.busybox
и Android Terminal emulator https://play.google.com/store/apps/deta ... ndroidterm
--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

anatolysn
Сообщения: 8
Зарегистрирован: 21 ноя 2012, 19:32
Страна: Россия

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

Сообщение anatolysn » 08 апр 2015, 11:14

не работает, выручайте.

ну конечно не хватает слеша тут

Код: Выделить всё

—referer=http://192.168.1.1/userRpm/DateTimeCfgRpm.htm http:/192.168.1.1/userRpm/
Последний раз редактировалось anatolysn 08 апр 2015, 20:15, всего редактировалось 3 раза.

Ответить

Вернуться в «TL-WR1042ND»