![编辑:](https://linux22.com/image/657287/%E7%BC%96%E8%BE%91%EF%BC%9A.png)
在 Wireshark 版本 1.12.4 中,我尝试使用 SSDP 协议过滤数据包消息。当我单击“过滤器”字段旁边的“表达式”按钮并选择“HTTP”(作为字段名称)和“存在”(作为关系)时,我仍然会收到 SSDP。大多数消息都是 SSDP,因此很难使用列表中的 SSDP 来排除我关心的请求和响应数据包故障。
答案1
SSDP 是作为在 HTTP-over-UDP 之上运行的协议实现的,因此过滤器“http”将匹配 SSDP 数据包。过滤器“http 而非 udp”应排除 SSDP 数据包;它显然也会排除其他HTTP-over-UDP 数据包,但我不确定是否会存在不是 SSDP 数据包的 HTTP-over-UDP 数据包。
答案2
我只是使用了该工具中的功能,通过右键单击有问题的数据包之一,然后选择子菜单“应用为过滤器”>然后选择“......且未选择”(在“未选择”分组下)。
然后它将表情变成了这样。
(http)&&!(ip.dst == 239.255.255.250)
因此,使用表达式弹出窗口只能应用单个过滤器,但要获取多个过滤器,您可以键入过滤器表达式,然后单击“应用”。或者使用右键单击上下文菜单,单击“应用为过滤器”,然后单击“应用”。
这样就把列表中除 4 行之外的所有行都删除了!这些行都具有 SSDP 协议。
编辑:
此外,Wireshark 似乎有自己的问答。
答案3
作为盖伊·哈里斯有用的答案表明,SSDP 是使用 UDP 进行传输的 HTTP,这意味着它可以通过以下方式简洁地捕获:
(!(http && udp))
这使得继续过滤变得容易,例如:
(!(http && udp)) & !ntp & ip.src==192.168.1.1
在我的例子中,SSDP 被索尼蓝光播放器用于广告,因此我可以使用以下命令将其过滤掉:
(!(http && udp && ip.dst==239.255.255.250))
答案4
我试过了http and !udp
,但没用。不过我发现下面的方法对我有用:
http and !(ip.addr == 192.168.0.253 or ip.addr==239.255.255.250 or ipv6.addr == ff02::c)
192.168.0.253
是我的路由器的IP。