使用 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
我通过反复试验找到了这个解决方案。
由于多播地址以“1110”开头(128+64+32+0 = 224),因此发送到以 1110 开头的 IP 地址的数据包的目的地是多播地址。 因此,与掩码 224.0.0.0/4 匹配的数据包的目的地是多播地址。
因此,此显示过滤器应仅过滤发送至多播地址的数据包:
ip.dst==224.0.0.0/4
使用 Wireshark(Linux 2.2.6 版本)可以选择过滤器“eth.ig == 1”
它指的是以太网帧中存在的“IG 位”。
IG 位区分 MAC 地址是个人地址还是组地址(因此称为 IG)。换句话说,IG 位为 0 表示这是单播 MAC 地址,IG 位为 1 表示这是多播或广播地址。
尽管这是一个非常古老的话题,目标 MAC 的 Mcast 流量范围是 01:00:5E:00:00:00 - 01:00:5E:FF:FF:FF
因此,我通过以下方式“切片”以太网目标 MAC 地址中的前三个八位字节:
eth.dst[0:3]==01:00:5E
您是否尝试过仅使用
multicast
作为过滤器?因为如果 not multicast
过滤掉所有多播数据包并允许通过您链接的页面似乎声明的所有其他内容,那么这是合乎逻辑的。