Несколько лет назад задавался подобной задачей, не придумал ничего лучше, как сортировать на получателе.
Пример выборки MAC-notify трапов из общей кучи на python:
Код:
def ByteToHex(byteStr): # Функция для преобразования строки символов в hex-string
return ''.join( [ "%02X " % ord( x[0:1] ) for x in byteStr ] ).split()
def MT_Prepare_Data(macdata): # Функия, получающая из строки символов тип операции, MAC-адрес и порт
mt_act = ''; mt_mac = ''; mt_port = ''; # Объявляем переменные
macdata = ByteToHex(macdata[-12:]) # Преобразовываем символы в hex-string
if macdata[0]+macdata[1] == '040A': # Если на определенном месте найден нужный признак, получаем искомые данные:
mt_act = int(macdata[2],10) # - 'Действие' (или тип события). Бывает Add(1), Remove(2) и Move(3)
mt_mac = ''.join(macdata[3:9]) # - MAC-адрес
mt_port = int(macdata[10],16) # - Номер порта
# Если 'Действие' в ожидаемом диапазоне, длина MAC-адреса равна 12 и порт определен, возвращаем эти данные
if (mt_act in [1, 2, 3]) & (len(mt_mac)==12) & (mt_port!=''):
return mt_act, mt_mac, mt_port
else: # Если же найдено что-то непонятное, возвращаем 'False' во всех случаях
return False, False, False
Не совсем кошерно, но работает и есть не просит.