Меню
Контакты
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

 24 Янв 2012    MikroTik, Scripts

Добавление пользователей в Mikrotik Routerboard лучше оформить таким образом, чтобы необходимые данные вводить не непосредственно в код программы, а в специальную форму.

Создадим форму:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>Mikrotik API PHP</title>

<style type="text/css" media="screen">

#slideout {

position: fixed;

top: 40px;

left: 0;

width: 140px;

padding: 12px 0;

text-align: center;

background: #4876FF;

-webkit-transition-duration: 0.3s;

-moz-transition-duration: 0.3s;

-o-transition-duration: 0.3s;

transition-duration: 0.3s;

-webkit-border-radius: 0 5px 5px 0;

-moz-border-radius: 0 5px 5px 0;

border-radius: 0 5px 5px 0;

}

#slideout_inner {

position: fixed;

top: 40px;

left: -270px;

background: #4876FF;

width: 220px;

padding: 25px;

height: 270px;

-webkit-transition-duration: 0.3s;

-moz-transition-duration: 0.3s;

-o-transition-duration: 0.3s;

transition-duration: 0.3s;

text-align: left;

-webkit-border-radius: 0 0 5px 0;

-moz-border-radius: 0 0 5px 0;

border-radius: 0 0 5px 0;

}

#slideout_inner textarea {

width: 190px;

height: 100px;

margin-bottom: 6px;

}

#slideout:hover {

left: 250px;

}

#slideout:hover #slideout_inner {

left: 0;

}

</style>

</head>

<body>

<div id="slideout">

<img src="feedback.png" alt="Отправить отзыв" />

<div id="slideout_inner">

<form action="add.php" method="POST">

<p><label >Логин</label><br /><input type='text' name='login' /></p>

<p><label >Пароль</label><input type='text' name='password' /></p>

<p><label >IP адрес</label><input type='text' name='ip' /></p>

<p><label >Сервис </label><select name='service'>

<option>pptp</option>

<option>ppoe</option>

<option>any</option>

</select></p>

<p><label >Скорость </label><select name='speed'>

<option>5</option>

<option>10</option>

<option>20</option>

</select></p>

<p><input type="submit" value="Добавить" /></p>

</form>

</div>

</div>

</body>

</html>

 

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

В <style type="text/css" media="screen"> описаны стили CSS.

Создаём форму, которая будет передавать данные методом POST в файл add.php. Форма содержит поля для ввода логина, пароля, IP-адреса пользователя, а также два списка для выбора названия сервиса и скорости ограничения пользователя.

<form action="add.php" method="POST">

<p><label >Логин</label><br /><input type='text' name='login' /></p>

<p><label >Пароль</label><input type='text' name='password' /></p>

<p><label >IP адрес</label><input type='text' name='ip' /></p>

<p><label >Сервис </label><select name='service'>

<option>pptp</option>

<option>ppoe</option>

<option>any</option>

</select></p>

<p><label >Скорость </label><select name='speed'>

<option>5</option>

<option>10</option>

<option>20</option>

</select></p>

<p><input type="submit" value="Добавить" /></p>

</form>

 

Оформляем добавление пользователей с помощью API

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

 

Наведём указатель мыши на кнопку.

 

Mikrotik Routerboard, форма добавления

Рис.2. Mikrotik Routerboard, форма добавления.

 

Заполняем форму и нажимаем "добавить".

И файл примет следующий вид:

<?php

Обработка данных полученных методом пост

if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);}}

if (isset($_POST['password'])) { $password = $_POST['password']; if ($password == '') { unset($password);}}

if (isset($_POST['ip'])) { $ip = $_POST['ip']; if ($ip == '') { unset($ip);}}

if (isset($_POST['service'])) { $service = $_POST['service']; if ($service == '') { unset($service);}}

if (isset($_POST['speed'])) { $speed = $_POST['speed']; if ($speed == '') { unset($speed);}}

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

$max_limit = "$speed"."M"."/"."$speed"."M";

#print $max_limit;

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

"name" => $login,

"password" => $password,

"remote-address" => $ip,

"comment" => $comment,

"service" => $service,

));

$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($login, $password, $ip, $service, $speed)

?>

 

Mikrotik Routerboard список пользователей

Рис.3. Mikrotik Routerboard список пользователей.

 

Таким образом, добавление пользователей в Mikrotik Routerboard станет более удобным.

 

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