Поговорим об использовании API в Mikrotik Router OS.
(API) Интерфейс программирования приложений (иногда, интерфейс прикладного программирования) (application programming interface, API [эй-пи-ай]) — это набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах. Используется программистами для написания всевозможных приложений.
Mikrotik Router OS также предоставляет API для взаимодействия с устройствами Mikrotik Routerboard при помощи приложений, написанных на различных языках программирования.
Рассмотрим возможность использования API в PHP.
Для взаимодействия с Mikrotik Router OS при помощи API, из PHP есть готовый класс https://wiki.mikrotik.com/wiki/API_PHP_class#Example_1.
Рис.1. PHP класс для работы с API Mikrotik Router OS.
Создадим файл routeros_api.class.php и поместим в него классы для взаимодействия с API Mikrotik Router OS.
Также создадим файл router_connect.php, в котором будем писать свой код.
Перед тем как приступить к работе с API, необходимо включить нужный сервис.
Рис.2. Mikrotik Router OS IP Services.
Переходим в раздел IP Services.
Рис.3. Mikrotik Router OS сервис api.
Включаем сервис с именем api.
Приступим к написанию кода. Выполним соединение с устройством Mikrotik Routerboard.
<?php
require('routeros_api.class.php');
$API = new routeros_api();
if ($API->connect('192.168.4.254', 'ubnt', 'ubnt')) {
print 'Соединение установлено';
$API->disconnect();
}
else {
print "Ошибка соединения";
}
?>
Разбираем код:
<?php
Подключаем файл с классом:
require('routeros_api.class.php');
Создаем объект класса:
$API = new routeros_api();
Добавляем условный оператор if else. В качестве условия, вызываем метод для соединения с устройством Mikrotik Routerboard и передаем в него параметры соединения:
if ($API->connect('192.168.4.254', 'ubnt', 'ubnt')) {
Если соединение прошло успешно, выводим сообщение:
print 'Соединение установлено';
Рис.4. Сообщение об успешном соединении с Mikrotik Routerboard.
Вызываем метод disconnect() и разрываем соединение с устройством Mikrotik Routerboard:
$API->disconnect();
}
else {
Если по каким-то причинам устройство Mikrotik Routerboard оказалось недоступно, выводим сообщение об ошибке:
print "Ошибка соединения";
Рис.5. Сообщение об ошибке соединения с Mikrotik Routerboard.
Евгений Рудченко специально для ASP24.