有没有办法使用 tcpdump 只捕获免费的 ARP?

网络工程 arp 转储
2021-07-07 22:20:38

我正在尝试设置 tcpdump 以仅过滤免费的 ARP。我知道我需要搜索主机设置为 ff:ff:ff:ff:ff:ff 的数据包。我找到了 arp.opcode 参数,但我似乎无法让它工作。例如,这个:

tcpdump -i wm0 arp and arp.opcode == 2

返回一个语法错误。

任何人都可以对此有所了解吗?

谢谢,

杰森·M。

1个回答

在 Unix 系统的常用 tcpdump 中,只有一些字段以其名称为已知。

尝试通过偏移量和大小指定操作码字段,并与 2(“回复”)进行比较

tcpdump -i eth99 arp and arp[6:2] == 2

对于带有操作码“回复”的广播,它应该只是免费的 ARP:

tcpdump -i eth99 broadcast and arp and arp[6:2] == 2