【问题标题】:c/c++ pcap filter expression for ARP reply packets用于 ARP 回复数据包的 c/c++ pcap 过滤器表达式
【发布时间】:2017-04-16 10:48:36
【问题描述】:

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

arp.opcode==2

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

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

似乎没有任何效果。我试图用谷歌搜索它,但没有成功。是否甚至可以过滤特定的数据包?

【问题讨论】:

  • 只需使用 C 或 C++。不要同时标记帖子。还要添加我们无能为力的代码。
  • pcap 过滤器不如 Wireshark 支持的表达式那么复杂。例如,文档linux.die.net/man/7/pcap-filter。您最好只过滤 arp 流量,然后检查代码中的回复;否则你将需要在字节级别研究 arp 数据包格式。
  • @AlanStokes 是的,我想。我想让它更简单,但我想它不能完成。谢谢回复!

标签: c++ c pcap libpcap arp


【解决方案1】:

我怀疑这应该可行,基于来自Wikipedia 的数据包结构:

arp [6:2] = 2

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

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

【讨论】:

    猜你喜欢
    • 2012-07-25
    • 2018-12-17
    • 2016-09-01
    • 1970-01-01
    • 2015-02-05
    • 2017-03-04
    • 2020-11-13
    • 1970-01-01
    • 2014-08-27
    相关资源
    最近更新 更多