Программный рестарт роутеров. Перезагрузка роутера с помощью программы
Всем привет, это мой новая статья о том, как же перезагрузить роутер программно, при этом не открывать веб обозреватель.
Я занялся данной проблемой, так как работаю в одной организации, где полно разных точек доступа и роутеров. Все они разные и не похожи друг на друга. Один сломался, купили новый.
Итак, поскольку в здании, где я работаю порядка девяти (9) различны роутеров, и они расположены на разных этажах, в разных по доступности помещения. Это довольно затруднительно ходить и каждый рестартить, как только тот выходит из строя и тебе звонит расстроенный менеджер/директор/бухгалтер и говорит: “где интернет, хочу интернет, иди и почини”. Если с менеджерами можно договориться: выключи/включи; то с ген. директором это не прокатывает.
Так вот, последней каплей был фин. Директор и я принялся на поиски чудо лекарства для всех этих “коробочек”. Однако мои блуждания по интернету не увенчались успехом в поисках чуда лекарства, ну или того, что мне поможет. Тогда, я решил сделать свою чудо программку! Ну не зря же в инсте программирование проходили, не так ли?
Пару дней борьбы со студией и си-шарпом (C#) дали свои плоды в виде мини программки (14 Кб). Однако эта программка не простая, она умеет обрабатывать сразу несколько роутеров и писать лог выполненных операций.
Программа исполнена в виде консольного приложения и полностью работает на автомате. Ее предназначение – запускаться с помощью планировщика заданий на пк/сервере, который расположен в сети предприятия и работает 24/7 под управлением ос Windows c пакетом Framework не ниже 2.0.
ВНИМАНИЕ! Программа работает с веб интерфейсом устройства и не приспособлена для telnet’a
Как пользоваться
Качаем программу (снизу есть ссылка) и первым делом заполняем конфиг – OptionsRouter.xml. Этот файл содержит атрибуты с обязательным заполнением:
<Name> — Имя роутера или устройства с веб интерфейсом
<IP> — ip-адрес устройства
<Port> — порт веб узла через который посылается запрос
<TypeHTTP> — тип http: http или https
<LinkApplyRestart> — страница, где применяются параметры или нажимается кнопка, выполняющая перезагрузку
<Referer> — ссылающиеся страница, или страница источник. В основном это index.html и index.asp или Index.html
<QueryPOST> — запрос к устройству через метод POST, что-то нажать или применить настройки
<Encoding> — кодировка страницы в веб обозревателе
<User> — пользователь для входа
<Password> — пароль для входа, как есть
<TypeQuery> — этот пункт может быть как GET так и POST
<ContentType> — обычно для GET — text/html; а для POST — application/x-www-form-urlencoded
В данном конфиге можно указать сразу несколько устройств заполнив по анлогии с предыдущим. Каждое новое устройство должно начинаться и закрываться тегом <Router> </Router>
<?xml version="1.0" encoding="utf-8" ?> <Options> <Router> <Name>TP-LINK Wireless AP WA5110G</Name> <IP>192.168.10.222</IP> <Port>80</Port> <TypeHTTP>http</TypeHTTP> <LinkApplyRestart>/userRpm/SysRebootRpm.htm?Reboot=Reboot</LinkApplyRestart> <Referer>/userRpm/SysRebootRpm.htm</Referer> <TypeQuery>GET</TypeQuery> <QueryPOST>/userRpm/SysRebootRpm.htm?Reboot=Reboot</QueryPOST> <Encoding>ASCII</Encoding> <ContentType>text/html</ContentType> <User>admin</User> <Password>admin</Password> <Authorization></Authorization> </Router> </Options>
Конфиг файл, лог файл и приложение должны находиться в одной папке. Запускающий файл – BotRouterRestarter.exe .Лог выполненных операций ведется в файле Log.txt (лог ведется через табуляцию с новой строки)
Теперь о том, где взять каждый параметр, начнем с <Name>. Этот параметр берётся из веб интерфейса устройства или с этикетки на нем. <IP> — ip-адрес устройства. <LinkApplyRestart>, этот параметр можно узнать только с помощью специального инструмента веб-мастера – “Отладка кода” для веб страницы HTML. Для Google Chrome, Internet Explorer и FireFox это F12. Нажав на эту кнопку, будет открыто окно для просматривания кода интернет страницы. Воспользовавшись инструментом “Указатель” наведите на кнопку, которая выполняет применении параметров и перезагрузку или на кнопку перезагрузки. Теперь поднимаясь по коду вверх найдите тег <form>:
Форма где расположена кнопка и метод POST для сохранения параметров
<form id="form1" method="post" action="/apply.cgi?formTcpipSetup"></form>
Вот здесь, как раз и хранится необходимая нам информация – атрибут “action”. Копируем содержимое без кавычек и вставляем в наш конфиг.
Следующее, что нам понадобится из кода страницы, это та кнопка, на которую мы первоначально наводили: атрибут этой кнопки “value” без пробелов и кавычек. Также подставляем в <QueryPOST> после “submit=” между “+”. Этот параметр может быть разный на разных моделях.
Теперь, посмотрим кодировку страницы, что тоже очень важно, для FireFox — файл-веб разработка-кодировка. Необходимо переписать то, что в скобках. С User и Password, думаю все ясно.
После того, как все правильно заполнили, можно запускать программу. Внимание! При неправильных параметрах LinkApplyRestart и QueryPOST программа может сбить настройки устройства.
Хоелось бы отметить, что для перезагрузки устройства требуется определённое время (0-20 секунд). Пока устройство перезапускается, программа ждет ответа от него на посланный запрос.Пока не получит ответ, не перейдет к следующему роутеру. Если ответ не получен, убедительная просьба проверить оборудование.
******************************************************************************************************
Внимание! Автор программы не несет никакой ответственности за нанесенный материальный/нематериальный ущерб при работе с программой.
******************************************************************************************************
Эта программа крайне удобная для системных администраторов, у которых стоят простые роутеры, которые время от времени зависают и требуют ребута.
Ссылка на программу в конце статьи. Обновлено — 27.02.2014
Следующее обновление: не определено. Исправляются мелкие недочеты для работы с различными моделями. Следите за обновлениями!
Комментарии по работе с программой оставяйте ниже.
Заметки
- Если роутер не перезапускается, а конфиг корректный, проверьте <QueryPost> с помощью Firefox + LIVE HTTP. Возможны отличия от того, что написано в HTML кнопки на перезапуск и действительности, что происходит «за кулисами».
- Если вы используете POST вместо GET, то в этом случае необходимо посылать запрос на перезапуск со всеми настройками роутера. В противном случае настройи обнулятся
- Если LIVE HTTP показывает длинный запрос, где множесто символов типа «&», то такие символы рекомендуется заменить на «+»
Важно
Если у вас роутер не перезапускается, пишите ваш конфиг и название роутера в комментариях, обязательно отвечу или через форму обратной связи.