Удаленная перезагрузка D-LINK DIR-825/I1 с прошивкой 1.0.3.

dtvims
Site Admin
Сообщения: 134
Зарегистрирован: Пн авг 02, 2010 2:43 pm

Удаленная перезагрузка D-LINK DIR-825/I1 с прошивкой 1.0.3.

Сообщение dtvims » Чт сен 21, 2023 2:27 pm

Появилась идея автоматически определять пропажу интернета и перезагружать роутер. Самая простая идея зайти по ssh/telnet и дать команду reboot, но по какой-то сверх важной причине эта команда в прошивке отсутствует.
Начал искать решения и нашел по роутерам ASUS скрипты как дернуть скрипт reboot по http запросу, типа обычный вэб-клиент. А что делать с D-LINK? Надо изучать...
Думаю, что мол ssh есть, ща зайдем, посмотрим, разберемся... Но там чет так "Хорошо" сделано, видимо чтобы поддерживать ПО было легче, что ничего с ходу не понять. Вероятно, конечно, с этим что-то можно сделать, но проще разве что поставить новую прошивку на него типа Open-wrt и не париться. В общем, ну его!
Открыл браузер, открыл отладку, посмотрел какие пакеты браузер отправляет и набросал скриптик ssh вот такой:

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

#sh
TOKEN=$(curl -c /home/pi/cookiefile -X POST http://192.168.0.1/login -H 'Content-Type: application/json' -d '{"login":"admin","password":"myverycomplexpassword","staysigned":true}' | grep -o '"AccessToken": "[^"]*' | grep -o '[^"]*$')
echo -e '192.168.0.1\tFALSE\t/\tFALSE\t0\tDMSD-Access-Token\t'$TOKEN >> /home/pi/cookiefile
curl -b /home/pi/cookiefile -X POST http://192.168.0.1/system_reboot -H 'Content-Type: application/json' -d '{}'

Там все общение с роутером сводится к отправке JSON сообщений. Первое сообщение с помощью curl осуществляет авторизацию пользователя, сессия сохраняется в cookie файл, и второй запрос запускает механизм перезапуска.
Собственно сохраняем это в файл в reboot_router.sh (можно назвать как угодно), разрешаем ему выполнение, запускаем и наблюдаем как роутер ушел в reboot.
Скрипт для linux систем, но можно найти способ и для др. систем по тому же принципу.

З.ы. Я спрашивал на 4pda об этом, но пока ждал ответа, сам сделал данный скрипт и сам себе там же ответил. Потом успешно забыл как я это делал, хотел повторить, но у меня все пропало. Тут наткнулся на свой пост и думаю, что надо сохранить это себе поближе...
З.з.ы. Тест интернета просто пингом внешнего ресурса с этим роутером не катит, т.к. он отвечает страничкой ошибок вместо внешнего сервера, а потому создается впечатление, что интернет есть, т.е. проверка не может быть примитивной, а что-то умное у меня так и не заработало, т.к. это надо на месте тестировать, отключая интернет, а я все делал удаленно и, если бы я его отключил, то как бы я его включили обратно без него? В обще задача осталась не доделана...

Вернуться в «Администрирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя