Моему домашнему роутеру TL-WR940N уже не первый год. Работает он практически без нареканий, но иногда случаются зависания. При этом сам роутер не перегревается. После сброса питания снова работает великолепно, а иногда достаточно просто перезапустить соединение PPOE в web-интерфесе. Одна только в этом проблема, что в момент зависания меня часто не бывает дома, перезагрузить его некому, а доступ к домашнему компьютеру нужен. Над решением этой проблемы я задумался давно.
Одним из вариантов решения вопроса было приобретение китайской GSM розетки, которая прилетела из поднебесной с браком, и больше заказывать ее я не стал.
Встал вопрос, а может можно перегружать роутер командой с компьютера. Стоит отметить, что компьютер у меня включен почти круглосуточно. Ссылку на страницу перезагрузки я нашел довольно быстро. И тут возникла еще одна проблема, а как провести аутентификацию для запуски перезагрузки. Были рассмотрены решения под Linux, но у меня Windows. Был еще вариант с нестандартной прошивкой, но он тоже не пригодился. Потратив еще некоторое время, мне удалось побороть и эту проблему с помощью внешней утилиты wget. Скачать которую можно тут .
Результатом изысканий стал небольшой командный файл, который я включил в автозагрузку своего компьютера. Его задача каждые 10 минут проверить командой ping доступность какого-либо интернет ресурса. Если эта команда завершалась неудачей, то на роутер с помощью wget должна быть отправлена команда перезагрузки. Затем подождать 2 минуты, и снова проверять связь.
Вот текст моего командного файла r_test.bat:
Одним из вариантов решения вопроса было приобретение китайской 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