Меню
Контакты
107023, Москва, пл. Журавлёва, 10с3, подъезд 31, офис 309
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Интернет-магазин
сетевого оборудования
Москва +7 (495) 103-41-03 +7 (915) 420-28-94
107023, Москва, пл. Журавлёва, 10с3, подъезд 31, офис 309
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Заказать звонок

Как обработать данные, извлеченные из Mikrotik Routerboard?

 22 Ноя 2011    MikroTik, Scripts

В статье "Mikrotik Router OS API PHP. Как извлечь данные из Mikrotik Routerboard?" мы научились получать данные от устройств Mikrotik Routerboard. Теперь приступим к обработке полученных данных.

 

Пишем код:

<?php

require('routeros_api.class.php');

$API = new routeros_api();

if ($API->connect('192.168.4.253', 'ubnt', 'ubnt')) {

print 'Соединение установлено';

$API->write('/interface/getall');

$INTERFACE = $API->read(false);

$ARRAY = $API->parse_response($INTERFACE);

print_r($INTERFACE);

print "<br><br>";

print_r($ARRAY);

$API->disconnect();

}

else {

print "Ошибка соединения";

}

?>

 

Разбираем код:

Вызываем метод parse_response, передав в него $INTERFACE для обработки. Результат работы метода поместим в $ARRAY:

$ARRAY = $API->parse_response($INTERFACE);

Выведем полученные и обработанные данные на экран:

print_r($INTERFACE);

print "<br><br>";

print_r($ARRAY);

 

Mikrotik Router OS API PHP. Значения полученных и обработанных данных.

Рис.1. Значения полученных и обработанных данных.

 

На рисунке 1 мы видим, что полученные данные - это простой массив, состоящий из 46 элементов. В результате обработки мы получили массив, состоящий из 5 элементов. Каждый элемент - это ассоциативный массив, к которому можно обращаться по ключам.

Выведем на экран по одному элементу из массивов:

print $INTERFACE[2];

print "<br><br>";

print $ARRAY[0][name];

 

Вывод элементов массива

Рис.2. Вывод элементов массива.

 

На рисунке 2 видно, что вывод элемента из массива $INTERFACE, выдал результат =name=ether1, а вывод из $ARRAY выдал только имя устройства ether1. Работать с массивом $ARRAY гораздо удобней, поэтому с его помощью выведем список интерфейсов.

Применим цикл foreach, который будет извлекать элементы из массива и заносить в переменную $x, выведем переменную х на экран.

foreach ($ARRAY as $x)

{

print "<p>";

print_r($x);

print "</p>";

}

 

Результат поэлементного вывода массива $ARRAY

Рис.3. Результат поэлементного вывода массива $ARRAY.

 

Выведем список интерфейсов в таблице.

print "<table>";

print "<tr bgcolor='#fee3ad' border='1'>";

print "<td>";

print "name";

print "</td>";

print "<td>";

print "type";

print "</td>";

print "<td>";

print "mtu";

print "</td>";

print "<td>";

print "l2mtu";

print "</td>";

print "</tr>";

foreach ($ARRAY as $x)

{

print "<tr border='1'>";

print "<td>";

print $x["name"];

print "</td>";

print "<td>";

print $x["type"];

print "</td>";

print "<td>";

print $x["mtu"];

print "</td>";

print "<td>";

print $x["l2mtu"];

print "</td>";

print "</tr>";

}

print "</table>";

 

Mikrotik Router OS API PHP. Вывод данных об устройствах.

Рис.4. Вывод данных об устройствах в таблице.

 

В данном примере, при помощи цикла foreach извлекали по одному элементу в переменную x. В результате получался ассоциативный массив, к которому мы обращались по ключам.

 

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