Благодаря pcap_filter
я хочу фильтровать по
ether_type
: протокол 0x88b5- И по конкретным байтам в полезной нагрузке: "ASK" или 0x41434b
Это уровень Ethernet => нет сетевого уровня, непосредственно полезная нагрузка.
=> байты, которые я ищу, находятся на байтах 15, 16 и 17 кадра Ethernet, верно?
Я пробовал это, но это не работает:
char filter_exp[] = "ether proto 0x88b5 and ether[14:3] == 0x41434b";
if(pcap_compile(descr,&fp,filter_exp,0,PCAP_NETMASK_UNKNOWN) == -1)
{ fprintf(stderr,"Error calling pcap_compile\n"); exit(1); }
Мой вопрос:
- мы можем смешать фильтры на
ether_type
и байтах? - Если нет, как я могу это сделать? Указывая байты для фильтрации в
ether_type
тоже?