从特定 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 一起使用。
我想使用 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 一起使用。