16 Янв 2012    MikroTik, Scripts

 

Подмечено, что используя консоль в Mikrotik Routerboard, при изменении частоты для беспроводного интерфейса, часто забывают, какие значения можно вводить. Поэтому вместо написаного на листочке бумаги списка частот на мониторе, лучше написать скрипт подсказку. Кроме того, в результате работы скрипта будет получена готовая консольная команда для изменения частоты.

Скрипт будет состоять из двух файлов: index.php и form.php.

  • index.php– основной код;

  • form.php– форма для выбора необходимых параметров.

 

Содержание файла form.php:

<form action="#" method='post' enctype='multipart/form-data'>

<p>Выбираем беспроводной интерфейс</p>

<p><select name="select_interface">

<option value="wlan1"> wlan1 </option>

<option value="wlan2"> wlan2 </option>

<option value="wlan3"> wlan3 </option>

<option value="wlan4"> wlan4 </option>

<option value="wlan5"> wlan5 </option>

</select></p>

<p>Выбираем частоту</p>

<p><select name="select_frequency">

<option value="2412"> 2412 </option>

<option value="2417"> 2417 </option>

<option value="2422"> 2422 </option>

<option value="2427"> 2427 </option>

<option value="2432"> 2432 </option>

<option value="2437"> 2437 </option>

<option value="2442"> 2442 </option>

<option value="2447"> 2447 </option>

<option value="2452"> 2452 </option>

<option value="2457"> 2457 </option>

<option value="2462"> 2462 </option>

</select></p>

<p><input type="submit" value="Отправить" /></p>

</form>

Думаю, нет смысла подробно описывать данный файл. Стандартная html форма отправки данных. Использует метод POST и содержит два тега select для выбора беспроводного интерфейса и частоты.

Содержание файла index.php:

<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

<meta http-equiv="content-type" content="text/html; charset=windows-1251" />

<meta name="author" content="Рудченко Евгений" />

<title> Выбор частоты </title>

</head>

<body>

<?php

$frequency = array("2412", "2417", "2422", "2427", "2432", "2437", "2442", "2447", "2452", "2457", "2462");

$interfaces = array("wlan1", "wlan2", "wlan3", "wlan4", "wlan5");

$action = "/in wi set frequency=%s [find name=%s]";

if (isset($_POST['select_interface'])) { $select_interface = $_POST['select_interface']; if ($select_interface == '') { unset($select_interface);} }

if (isset($_POST['select_frequency'])) { $select_frequency = $_POST['select_frequency']; if ($select_frequency == '') { unset($select_frequency);} }

if (empty($select_interface) AND empty ($select_frequency))

{

require_once('form.php');

}

else

{

echo sprintf($action, $select_frequency, $select_interface);

}

?>

</body>

</html>

Пояснения к index.php:

$frequency = array("2412", "2417", "2422", "2427", "2432", "2437", "2442", "2447", "2452", "2457", "2462"); - создаём массив со значением частот.

$interfaces = array("wlan1", "wlan2", "wlan3", "wlan4", "wlan5"); - массив со списком беспроводных интерфейсов в Mikrotik Routerboard. При необходимости их можно изменить на собственные значения.

$action = "/in wi set frequency=%s [find name=%s]"; - консольная команда изменения частоты для беспроводного интерфейса. Вместо %s будет подставлено значение выбранной частоты и имени беспроводного интерфейса.

Принимаем данные из формы и помещаем в переменные $select_interface и $select_frequency.

if (isset($_POST['select_interface'])) { $select_interface = $_POST['select_interface']; if ($select_interface == '') { unset($select_interface);} }

if (isset($_POST['select_frequency'])) { $select_frequency = $_POST['select_frequency']; if ($select_frequency == '') { unset($select_frequency);} }

if (empty($select_interface) AND empty ($select_frequency)) – проверка, установлены ли переменные $select_interface и $select_frequency.

Если не установлены - подгружаем форму выбора значений:

require_once('form.php');

Если переменные определены, выводим на экран переменную action, предварительно подставив в нее значения переменных $select_frequency и $select_interface при помощи функции sprintf().

echo sprintf($action, $select_frequency, $select_interface);

Проверка работоспособности:

 

Форма для выбора частоты и интерфейса

Рис.1. Форма для выбора частоты и интерфейса.

 

Скрипт- подсказка. Результат работы скрипта.

Рис.2. Результат работы скрипта.

 

Mikrotik Routerboard, исходное значение частоты

Рис.3. Mikrotik Routerboard, исходное значение частоты.

 

В Mikrotik Routerboard перейдём в раздел /interface wireless и выполним команду print. Как видно на рис.3., беспроводному устройству присвоена частота 2417.

 

Mikrotik Routerboard, измененное значение частоты

Рис.4. Mikrotik Routerboard, изменённое значение частоты.

 

Выполнив консольную команду в Mikrotik Routerboard, можно увидеть, что частота была успешно изменена.

 

Евгений Рудченко специально для ASP24.