Посмотрел вики, тут всё довольно непонятно
Вот это записано для д-линка:
Код: Выделить всё
DHCP-Relay-Agent-Information:0x(01)(06)0004([0-9a-f]{4})\d{2}([0-9a-f]{2})(02)(08)([0-9a-f]{12}):ID,SIZE,VLAN,PORT,ID,SIZE,MAC;
А это для Dlink DES-3200-26 для Hw A1,B1 Firmware Version1.28.009 , HW C1 Firmware Version 4.00.24 DGS-3120-24SC hw a2 Firmware VersionBuild 2.00.010
Код: Выделить всё
DHCP-Relay-Agent-Information:0x(01)(06)0004([0-9a-f]{4})\d{2}([0-9a-f]{2})(02)(080006)([0-9a-f]{12}):ID,SIZE,VLAN,PORT,ID,SIZE,MAC;
Вот возьмём вывод tshark'a (правда
отсюда, а не свой, т.к. сейчас дома болею)
Код: Выделить всё
Option: (t=82,l=25) Agent Information Option
Option: (82) Agent Information Option
Length: 25
Value: 0106000408BC0001020F010D3137322E32392E31342E3132...
Agent Circuit ID: 000408BC0001
Agent Remote ID: 010D3137322E32392E31342E313232
В вики разбор идёт, как я понимаю, строки "value", в примере вот эта
Код: Выделить всё
Value: 0106000408BC0001020F010D3137322E32392E31342E3132...
С этим, я, скорее всего разберусь.
Вопрос как это в конфиг записать для двух разных устройств? Как система поймет, что это выражение нужно использовать для этих запросов, а другое выражение - для других?
Вот так что ли?
Код: Выделить всё
$conf{DHCPHOSTS_EXPR}='DHCP-Relay-Agent-Information:0x(01)(06)0004([0-9a-f]{4})\d{2}([0-9a-f]{2})(02)(08)([0-9a-f]{12}):ID,SIZE,VLAN,PORT,ID,SIZE,MAC;DHCP-Relay-Agent-Information:0x(01)(06)0004([0-9a-f]{4})\d{2}([0-9a-f]{2})(02)(080006)([0-9a-f]{12}):ID,SIZE,VLAN,PORT,ID,SIZE,MAC;';
Всё равно остаётся вопрос как оно поймёт какое выражение применять к какому запросу? По длине?