Программный рестарт роутеров. Перезагрузка роутера с помощью программы

Всем привет, это мой новая статья о том, как же перезагрузить роутер программно, при этом не открывать веб обозреватель.

Я занялся данной проблемой, так как работаю в одной организации, где полно разных точек доступа и роутеров. Все они разные и не похожи друг на друга. Один сломался, купили новый.

Итак, поскольку в здании, где я работаю порядка девяти (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

Следующее обновление: не определено. Исправляются мелкие недочеты для работы с различными моделями. Следите за обновлениями!

Комментарии по работе с программой оставяйте ниже.

Заметки

  1. Если роутер не перезапускается, а конфиг корректный, проверьте <QueryPost> с помощью Firefox + LIVE HTTP. Возможны отличия от того, что написано в HTML кнопки на перезапуск и действительности, что происходит «за кулисами».
  2. Если вы используете POST вместо GET, то в этом случае необходимо посылать запрос на перезапуск со всеми настройками роутера. В противном случае настройи обнулятся
  3. Если LIVE HTTP показывает длинный запрос, где множесто символов типа «&», то такие символы рекомендуется заменить на  «+»

Важно

Если у вас роутер не перезапускается, пишите ваш конфиг и название роутера в комментариях, обязательно отвечу или через форму обратной связи.

Attachments