Pull to refresh

Программно перезагружаем роутер Tp-link

Моему домашнему роутеру TL-WR940N уже не первый год. Работает он практически без нареканий, но иногда случаются зависания. При этом сам роутер не перегревается. После сброса питания снова работает великолепно, а иногда достаточно просто перезапустить соединение PPOE в web-интерфесе. Одна только в этом проблема, что в момент зависания меня часто не бывает дома, перезагрузить его некому, а доступ к домашнему компьютеру нужен. Над решением этой проблемы я задумался давно.

Одним из вариантов решения вопроса было приобретение китайской GSM розетки, которая прилетела из поднебесной с браком, и больше заказывать ее я не стал.

Встал вопрос, а может можно перегружать роутер командой с компьютера. Стоит отметить, что компьютер у меня включен почти круглосуточно. Ссылку на страницу перезагрузки я нашел довольно быстро. И тут возникла еще одна проблема, а как провести аутентификацию для запуски перезагрузки. Были рассмотрены решения под Linux, но у меня Windows. Был еще вариант с нестандартной прошивкой, но он тоже не пригодился. Потратив еще некоторое время, мне удалось побороть и эту проблему с помощью внешней утилиты wget. Скачать которую можно тут .

Результатом изысканий стал небольшой командный файл, который я включил в автозагрузку своего компьютера. Его задача каждые 10 минут проверить командой ping доступность какого-либо интернет ресурса. Если эта команда завершалась неудачей, то на роутер с помощью wget должна быть отправлена команда перезагрузки. Затем подождать 2 минуты, и снова проверять связь.

Вот текст моего командного файла r_test.bat:

@echo off
set router_ip=192.168.0.1
set test_adress=8.8.8.8
set routeruser=admin
set routerpassword=admin
:start_test
ping -n 1 %test_adress% 
if %errorlevel%==1 (
echo ERROR -> REBOOT
"c:\Program Files (x86)\GnuWin32\bin\wget.exe" --http-user=%routeruser% --http-password=%routerpassword% --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
del SysRebootRpm.htm*.*
TIMEOUT /T 120
)
TIMEOUT /T 600
goto start_test
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.