Mikrotik API PHP примеры

Работаем с API. Добавляем пользователей с помощью PHP программирования. 2(2/2)

Продолжение статьи “Работаем с API. Добавляем пользователей с помощью PHP программирования“. В этой статье мы модернизируем скрипт добавления пользователей в Mikrotik Routerboard. Теперь в раздел PPP Secrets, кроме добавления данных, будет добавляться правило шейпера. Также в Address Lists добавим IP-адрес пользователя.

Рис.1. Mikrotik Routerboard.

Пишем код.

<?php

function f_add_user($login, $password, $ip, $service, $speed, $comment=’no comment’)
{
require(‘routeros_apiclass.php’);

$API = new routeros_api();
if ($API->connect(’192.168.4.253′, ‘ubnt’, ‘ubnt’))

$max_limit = “$speed”.”M”.”/”.”$speed”.”M”;

$API->comm(“/queue/simple/add”, array(
“name” => $login,
“target-addresses” => $ip,
“max-limit” => $max_limit,
));

$API->comm(“/ip/firewall/address-list/add”, array(
“address” => $ip,
“list” => “asp24net”,
));

#print “Новый пользователь добавлен”;
}

f_add_user(‘asp24′, ‘asp24password’, ’10.0.0.2′, ‘any’, ’10′)
?>

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

Создаем функцию f_add_user, которая будет принимать данные для добавления пользователя. Переменной $comment присвоим значение по умолчанию. Это на тот случай, если администратор не введет комментарий для данной учетной записи

function f_add_user($login, $password, $ip, $service, $speed, $comment=’no comment’)

Подключаем файл с классом:

require(‘routeros_api.class.php’);

Создаем объект класса:

$API = new routeros_api();

Соединяемся с устройством:

if ($API->connect(’192.168.4.253′, ‘ubnt’, ‘ubnt’))

Рис.2. Mikrotik Routerboard правило шейпера.

Для того, чтобы создать правило шейпера, необходим параметр max-limit со значением такого вида 10M/10M, где цифры – это значение входящей и исходящей скорости, M — единицы измерения, символ слэш разделяет два параметра.

Создадим переменную $max_limit, в которой будет храниться значение для параметра max-limit:

$max_limit = “$speed”.”M”.”/”.”$speed”.”M”;

Вызываем метод класса comm, передав в него команду для выполнения и параметры.

$API->comm(“/queue/simple/add”, array(

Переходим в раздел queue simple выполняем команду add.

Название правила шейпера:

“name” => $login,

IP-адрес, для которого применяется данное правило:

“target-addresses” => $ip,

Значение ограничения скорости:

“max-limit” => $max_limit,
));

$API->comm(“/ip/firewall/address-list/add”, array(

Переход в раздел ip/firewall/address-list. Выполняем команду add IP-адрес для добавления в Address Lists:

“address” => $ip,

Имя address-list:

“list” => “asp24net”,

Вызываем функцию, передав ей необходимые данные:

f_add_user(‘asp24′, ‘asp24password’, ’10.0.0.2′, ‘any’, ’10′, ‘users comms’)

Рис.3. Mikrotik Routerboard, добавление пользователя с комментарием.

В этом случае мы добавили значение комментария.

Вызываем функцию без значения комментария.

f_add_user(‘asp24′, ‘asp24password’, ’10.0.0.2′, ‘any’, ’10′)

Рис.4. Mikrotik Routerboard, добавление пользователя без комментария.

Так как значение комментария не было передано, оно было использовано по умолчанию.

Специально для ASP24.

Статьи цикла “Работа с API и добавление пользователей”.

Если Вы нашли ошибку в тексте, то выделите ее мышкой и нажмите Ctrl + Enter или .

Большое спасибо за Вашу помощь! Мы скоро исправим ошибку!

Сообщение не было отправлено. Пожалуйста, попробуйте еще раз.

Сообщение об ошибке

Ошибка:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *