Статья посвящена написанию функции, которая должна проверять МАС-адрес перед добавлением ARP-записи в Mikrotik Routerboard.
Рис.1. Функция добавления данных в Mikrotik Routerboard с правильным МАС-адресом.
Рис.2. Mikrotik Routerboard ARP-запись добавлена.
Рис.3. Функция добавления данных в Mikrotik Routerboard с пробелом в МАС-адресе.
Рис.4. Mikrotik Routerboard ARP-запись не добавлена.
В результате ошибки при вводе МАС-адреса ARP-запись не была добавлена в Mikrotik Routerboard. Для того чтобы избежать таких ошибок, напишем функцию проверки МАС-адреса.
Функция проверки МАС-адреса:
<?php
function f_mac_proverka($mac_address)
{
$dostupnie_simvoli = array('a', 'b', 'c', 'd'. 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); #Массив с допустимыми символами
$arr_mac = explode(":", $mac_address); #Убираем двоеточия, данные заносим в массив
$mac_string = implode($arr_mac); #Переводим массив в строку
$length = iconv_strlen($mac_string); #Подсчитываем количество символов в строке
if ($length!=12)
{
exit ("Не допустимое количество символов в мас адресе");
}
$n = 0;
while($n != 12)
{
if (in_array($mac_string{$n}, $dostupnie_simvoli))
{
echo "";
}
else
{
echo $ip_string{$n};
exit ("<p>В mac адрес был введен недопустимый символ </p>");
}
++$n;
}
echo "МAC адрес введен верно";
}
f_mac_proverka("00:a4:fe:43:ee:b4");
?>
Разбираем функцию:
Создаём функцию, принимающую значение МАС-адреса:
function f_mac_proverka($mac_address)
Создаём массив с символами, которые разрешено использовать в МАС-адресе:
$dostupnie_simvoli = array('a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
Убираем двоеточия, данные заносим в массив:
$arr_mac = explode(":", $mac_address);
Преобразуем массив в строку:
$mac_string = implode($arr_mac);
Подсчитываем количество символов в строке:
$length = iconv_strlen($mac_string);
Выполняем проверку - если в строке количество символов не равно 12, останавливаем скрипт:
if ($length!=12)
{
exit ("Не допустимое количество символов в мас адресе");
}
$n = 0; - создаем переменную n равную нулю.
Выполняем цикл while с условием n не равно 12:
while($n != 12)
{
Проверяем символ на вхождение в массив:
if (in_array($mac_string{$n}, $dostupnie_simvoli))
{
echo "";
}
else
{
Если введён недопустимый символ, останавливаем скрипт:
echo $ip_string{$n};
exit ("<p>В mac адрес был введен недопустимый символ </p>");
}
++$n; - увеличиваем переменную n на единицу.
}
echo "МAC адрес введен верно";
}
f_mac_proverka("00:a4:fe:43:ee:b4");
Евгений Рудченко специально для ASP24.




