Дорогие пользователи! У нас появился новый форум на платформе tp-link.community (Сообщество)

Форум доступен по ссылке https://community.tp-link.com/ru

Если при регистрации в Сообществе Вы укажете адрес электронный почты, который используете на данном форуме, то Ваши данные будут перенесены на форум Сообщества автоматически.
Также, если на форуме Сообщества Ваш никнейм будет занят, то Вам предложат сменить его или оставить, но с приставкой "_RU".

Подробнее Вы можете прочитать тут: https://community.tp-link.com/ru/home/f ... pic/501542

Убедительная просьба не дублировать темы на старом/новом форуме.

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

Беспроводной гигабитный маршрутизатор серии 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»