Научимся извлекать данные из Mikrotik Routerboard.
Рис.1. Mikrotik Routerboard список интерфейсов.
На рисунке 1 мы видим данные об интерфейсах. Эти данные мы должны получить при помощи PHP API.
Рис.2. Данные об интерфейсах в консоли.
Для того, чтобы увидеть информацию об интерфейсах, в консоли необходимо выполнить команду /interface print. Когда мы работаем с api, то вместо пробела используем символ слэш (/interface/print).
Приступим к написанию кода.
<?php
require('routeros_api.class.php');
$API = new routeros_api();
if ($API->connect('192.168.4.253', 'ubnt', 'ubnt')) {
print 'Соединение установлено';
$API->write('/interface/print');
$INTERFACE = $API->read(false);
$API->disconnect();
}
else {
print "Ошибка соединения";
}
?>
Разбираем код:
<?php
Подключаем файл с классом:
require('routeros_api.class.php');
Создаем объект класса:
$API = new routeros_api();
Соединяемся с устройством:
if ($API->connect('192.168.4.253', 'ubnt', 'ubnt')) {
Выводим сообщение об успешном соединении:
print 'Соединение установлено';
Вызываем метод write, который выполнит действие /interface/print на устройстве:
$API->write('/interface/print');
В переменную $INTERFACE заносим данные полученные методом read:
$INTERFACE = $API->read(false);
В результате мы получим массив данных, который можно вывести на экран:
print_r($INTERFACE)
Рис.3. Результат работы скрипта.
$API->disconnect();
}
else {
print "Ошибка соединения";
}
?>
Рис.4. Сравниваем результаты.
Сравнение результатов работы скрипта и консоли подтверждает правильность выполнения скрипта.
Евгений Рудченко специально для ASP24.