c++ - ARP 回复数据包的 c/c++ pcap 过滤器表达式

标签 c++ c pcap libpcap arp

我正在尝试创建 pcap 过滤器,仅用于过滤 ARP 回复。在wireshark中我使用

arp.opcode==2

而且它工作得很好。但是当我在 pcap_compile 函数中使用它时,它会抛出异常 - 语法错误。我也尝试了这些变体:

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

似乎没有什么效果。我尝试用谷歌搜索,但没有成功。是否有可能过滤特定的数据包?

最佳答案

根据Wikipedia中的数据包结构,我怀疑这应该可行。 :

arp [6:2] = 2

这个答案也建议了这一点:https://stackoverflow.com/a/40199540/212870

(不幸的是,一旦你找到答案,查找起来就更容易了。)

关于c++ - ARP 回复数据包的 c/c++ pcap 过滤器表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43436396/

相关文章:

c - fgets() 读取数字到空格

c - 如何在 C 中同时打印两个函数?

c - C语言中数组、&array、&array[0]的区别是什么?

c++ - 如何在 C/C++ 代码中使用 HTMLElement 类

c++ - C++ 中是否有用于远程进程间通信的 API?

c++ - 指针删除崩溃

port - tcpdump:如何捕获数据包的到达/传出接口(interface)?

c++ - 性能 : Overloaded [] and a call to a function

c++ - 如何将多个参数传递给 pcap_loop()/pcap_handler()?

pcap - C PCAP 库未知类型错误