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

Выполняем проверку MAC-адреса в PHP

 17 Янв 2012    MikroTik, Scripts

Статья посвящена написанию функции, которая должна проверять МАС-адрес перед добавлением ARP-записи в Mikrotik Routerboard.

 

Функция добавления данных в Mikrotik Routerboard с правильным МАС-адресом

Рис.1. Функция добавления данных в Mikrotik Routerboard с правильным МАС-адресом.

 

Выполняем проверку MAC-адреса в PHP

Рис.2. Mikrotik Routerboard ARP-запись добавлена.

 

Функция добавления данных в Mikrotik Routerboard с пробелом в МАС-адресе

Рис.3.  Функция добавления данных в Mikrotik Routerboard с пробелом в МАС-адресе.

 

 Выполняем проверку MAC-адреса в PHP

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