Меню
Контакты
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   Сб-вс: выходной
Заказать звонок

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

 07 Дек 2011    MikroTik, Scripts

Теперь в раздел PPP Secrets, кроме добавления данных, будет добавляться правило шейпера. Также в Address Lists добавим IP-адрес пользователя.

 

Добавление пользователей при помощи Mikrotik Router OS API PHP

Рис.1. Mikrotik Routerboard.

 

Пишем код.

<?php

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'))

$API->comm("/ppp/secret/add", array(

"name" => $login,

"password" => $password,

"remote-address" => $ip,

"comment" => $comment,

"service" => $service,

));

$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'))

 

Mikrotik Routerboard правило шейпера

Рис.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')

 

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

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

 

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

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

f_add_user('asp24', 'asp24password', '10.0.0.2', 'any', '10')

 

Mikrotik Routerboard добавление пользователя без комментария

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

 

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

 

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