C++ c/c++;用于ARP应答数据包的pcap筛选器表达式

C++ c/c++;用于ARP应答数据包的pcap筛选器表达式,c++,c,pcap,libpcap,arp,C++,C,Pcap,Libpcap,Arp,我正在尝试创建pcap过滤器,仅用于过滤ARP回复。我用的是钢丝鲨 arp.opcode==2 而且它工作得很好。但当我在pcap_编译函数中使用它时,它会抛出一个异常语法错误。我还尝试了这些变体: arp.opcode = 2 arp.opcode 2 arp opcode 2 arp.reply arp reply 似乎什么都不管用。我试着用谷歌搜索,但没有成功。甚至有可能过滤这些特定的数据包吗?根据以下数据包结构,我怀疑这应该有效: 这个答案也说明了这一点: 只使用C或C++。不要在帖

我正在尝试创建pcap过滤器,仅用于过滤ARP回复。我用的是钢丝鲨

arp.opcode==2
而且它工作得很好。但当我在pcap_编译函数中使用它时,它会抛出一个异常语法错误。我还尝试了这些变体:

arp.opcode = 2
arp.opcode 2
arp opcode 2
arp.reply
arp reply

似乎什么都不管用。我试着用谷歌搜索,但没有成功。甚至有可能过滤这些特定的数据包吗?

根据以下数据包结构,我怀疑这应该有效:

这个答案也说明了这一点:


<不幸的是,一旦你找到答案,查找起来就更容易了。< / P>只使用C或C++。不要在帖子上同时贴上这两个标签。还要添加代码,如果没有这些代码,我们将无能为力。pcap筛选器没有Wireshark支持的表达式那么复杂。文件,例如。您最好只过滤arp流量,然后检查代码中的回复;否则你需要在字节级别研究arp数据包格式。@AlanStokes是的,我想。我想让它更简单,但我想这是做不到的。谢谢回复!
arp [6:2] = 2