Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2011, 10:22   #1
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию Проверка на правильность ввода mac-address

Ребята, помогите придумать алгоритм, на предмет проверки mac-address'а.
Из поля ввода в строковую переменную заганяю mac-address и дальше нужно проверить на правильность ввода, ибо дальнейшие операции требуют жестко корректного ввода (запись адреса в базу и подальшей генерации скриптов для dhcp-сервера).
MAC-48 битный.
Так ничего особо в голову и не приходит.

Последний раз редактировалось Небесный; 01.08.2011 в 10:25.
Небесный вне форума Ответить с цитированием
Старый 01.08.2011, 10:37   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Небесный, если не ошибаюсь, принято этот самый MAC отображать/вводить как 6 (шесть) отдельных байт в шестнадцатеричном виде: шестнадацатеричный байт - это значит состоит из двух символов [0..9, A..F] - отсюда и пляшите...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.08.2011, 12:25   #3
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию

Тогда другой вопрос, как именно проверить число на предмет или оно в 16-тиричной системе?
Небесный вне форума Ответить с цитированием
Старый 01.08.2011, 12:49   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Небесный Посмотреть сообщение
Тогда другой вопрос, как именно проверить число на предмет или оно в 16-тиричной системе?
шестнадцатеричные: 0[xX][0-9a-fA-F]+

source
Andkorol вне форума Ответить с цитированием
Старый 03.08.2011, 12:28   #5
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию

Эх, ребята, так я и не разобрался.
Что-то я не в ту наверное степь полез.
Код:
if (!preg_match("|^([0-9a-f]{2})|is", $mac1))
{
	printf("Число является 16-тиричным");
}
Небесный вне форума Ответить с цитированием
Старый 05.08.2011, 23:12   #6
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию

Может кому-то пригодится, ответ приблизительно таков.
Код:
if (!preg_match('/^([a-f0-9]{2}:){5}[a-f0-9]{2}$/ims', $mac)) {
        echo "MAC '{$mac}' is invalid!\n";
} else {
	echo "MAC '{$mac}' is valid!\n";
}
Небесный вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форматирование ввода в колонку dataGridView и проверка правильности ввода tumanovalex C# (си шарп) 1 31.05.2011 19:56
Проверка на правильность ввода данних у Edit1 dm.bodya Помощь студентам 0 05.04.2011 18:04
Проверка на правильность ввода в Edit Claster Помощь студентам 1 05.04.2011 13:27
Дано число в двоичной системе счисления. Проверить правильность ввода этого числа isus Помощь студентам 2 29.11.2009 23:32
Проверка строки на правильность данных haros Microsoft Office Excel 10 28.02.2009 16:39