Рейтинг:0

сервер dhcpd неверный обнаружение Mac

флаг jp

В моей конфигурации dhcp у меня есть хук фиксации для сохранения информации об устройстве. Моя проблема в том, что некоторые из MAC-адресов становятся недействительными:

8:7c:39:ср:b6:3f - это должно начинаться с нуля

8:d0:b7:52:f9:68 - тоже это

мой dhcpd.conf

установить clientmac = двоичный-в-ascii(16,8,":",substring(аппаратное обеспечение,1,6));

djdomi avatar
флаг za
напомните, что вы должны добавить, например, какую ОС вы используете, и что вы пытаетесь решить?
Рейтинг:1
флаг in

Это зависит от того, что вы используете для его анализа, можно утверждать, что вполне допустимо опускать нули префикса, и это то, что мы делаем большую часть времени, потому что нет определения того, сколько цифр должно быть.

Однако, если мы пропустим часть о том, является ли это недействительным и почему, и вместо этого спросим: «Как мне получить это в желаемом формате», мы можем дать ответ.

В таком случае isc имеет об этом статью в базе знаний

Это не ошибка. Проблема в том, что функция преобразования двоичного кода в ASCII ничего не «знает» о предполагаемом использовании преобразованных двоичных цифр, и необычно включать начальные нули при печати числовых значений.

Однако с небольшими дополнительными манипуляциями все же можно получить желаемый результат:

установить foo = concat (
суффикс (concat ("0", двоичный код в ASCII (16, 8, "", подстрока (аппаратное обеспечение, 1,1))), 2), ":",
суффикс (concat ("0", двоичный код в ASCII (16, 8, "", подстрока (аппаратное обеспечение, 2,1))), 2), ":",
суффикс (concat ("0", двоичный код в ASCII (16, 8, "", подстрока (аппаратное обеспечение, 3,1))), 2), ":",
суффикс (concat ("0", двоичный код в ASCII (16, 8, "", подстрока (аппаратное обеспечение, 4,1))), 2), ":",
суффикс (concat ("0", двоичный код в ASCII (16, 8, "", подстрока (аппаратное обеспечение, 5,1))), 2), ":",
суффикс (concat ("0", двоичный код в ASCII (16, 8, "", подстрока (аппаратное обеспечение, 6,1))), 2)
);

(Он работает путем преобразования каждого «компонента» по отдельности, добавления к нему начального нуля (в случае, если он необходим); берется два последних шестнадцатеричных символа, а затем снова объединяется все вместе.)

флаг jp
Благодарим вас за то, что вы ответили на этот вопрос. Хорошее решение.
флаг in
Если это решает ваш вопрос, отметьте его как ответ;)
флаг jp
Пока нет, я все еще ищу лучшее решение. В настоящее время я использую свое альтернативное решение, которое заключается в том, что «если mac_address недействителен, тогда выполните arp ip_address», который в настоящее время короче, чем объединение строк. Но у вас все равно есть хорошее решение.
флаг in
Вопрос в том, что MAC-адрес является «недействительным» и как сделать его с нулевым префиксом? Надеюсь, вы найдете хорошее решение для своей реальной проблемы, даже если это кажется отличным от этого вопроса.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.