从特定 MAC OUI 捕获 Wireshark 中的所有流量?

Capturing all traffic in Wireshark from a specific MAC OUI?

我想使用 Wireshark/Tshark/TCPDump/etc 捕获来自特定设备制造商的所有 wifi 流量。我想使用 CAPTURE 过滤器,而不是显示过滤器。基本上,我想捕获来自 MAC 地址 11:22:33:xx:xx:xx 的所有数据包,仅此而已。或者,换句话说,MAC 地址的前 3 个八位字节或 OUI 使用 Berkeley 数据包过滤语法。有人有首选方法吗?

根据此 post,在您的捕获过滤器中使用类似 ether[A:B] 的语法,其中

  • A = 以太网帧中的起始字节位置,从 0 开始
  • B = 字节数,必须为 1、2 或 4

所以要匹配3个字节,你必须有2个比较:分别匹配2个字节和1个字节。

如果您只想了解来自此 OUI 的数据包(每个问题):

tcpdump 'ether[0:2] == 0x1122 && ether[2:1] == 0x33'

如果你希望所有数据包都to/from这个OUI:

tcpdump 'ether[0:2] == 0x1122 && ether[2:1] == 0x33 \
    || ether[6:2] == 0x1122 && ether[8:1] == 0x33'

ethernet header 的前 12 个字节 (0-11) 包含目标地址,然后是源 mac 地址。因此 select 两组 3 个字节 0-2 和 6-8,select 2 个字节在 0,1 个字节在 2,2 个字节在 6 和 1 个字节在 8。

只要您在前面加上 -f 捕获过滤器标志,您也应该能够将它与 tshark 一起使用。