使用 Wireshark GUI 中的 Wireshark“过滤器”字段,我想过滤捕获结果,以便只显示多播数据包。
我看过这篇文章,但这不适用于 GUI 过滤器字段。这个 Wireshark 页面展示了如何过滤多播,而不是如何过滤除多播之外的所有内容。
有谁知道一个简单的语句可以做到这一点?
先感谢您!
使用 Wireshark GUI 中的 Wireshark“过滤器”字段,我想过滤捕获结果,以便只显示多播数据包。
我看过这篇文章,但这不适用于 GUI 过滤器字段。这个 Wireshark 页面展示了如何过滤多播,而不是如何过滤除多播之外的所有内容。
有谁知道一个简单的语句可以做到这一点?
先感谢您!
就用这个(eth.dst[0] & 1)
。多播流量由 MAC 地址的最高有效字节的最低有效位识别。如果为 1,多播,如果为 0,则不。
(eth.dst[0]&1)
将过滤多播和广播。所以,从此排除广播。它会像
(eth.dst[0]&1) && !eth.dst==ff:ff:ff:ff:ff:ff
使用 Wireshark(Linux 的 2.2.6 版本)可以选择过滤器“ eth.ig == 1 ”
它指的是以太网帧中存在的“IG 位”。
IG 位区分 MAC 地址是个人地址还是组(因此是 IG)地址。也就是说,IG 位为 0 表示这是一个单播 MAC 地址,IG 位为 1 表示这是一个组播或广播地址。
我通过反复试验的过程遇到了这个解决方案。
由于多播地址以“1110”开头(128+64+32+0 = 224),因此发送到以 1110 开头的 IP 地址的数据包的目的地是多播地址。因此,匹配掩码 224.0.0.0/4 的数据包的目的地是多播地址。
因此,此显示过滤器应仅将数据包过滤到多播地址:
ip.dst==224.0.0.0/4
您是否尝试过仅用multicast
作过滤器?因为如果not multicast
过滤掉所有多播数据包并让其他所有内容都像您链接的页面所显示的那样,那么这只是合乎逻辑的。