在Wireshark版本1.12.4中,我试图用SSDP协议来过滤掉数据包。 当我单击filter字段旁边的expression式button,select“HTTP”(作为字段名称)和“存在”(作为关系),我仍然得到SSDP。 大多数消息是SSDP,所以很难排除我在意SSDP在列表中的请求和响应数据包。
https://www.wireshark.org/download.html
SSDP被实现为在UDP-over-UDP之上运行的协议 ,所以filter“http”将匹配SSDP分组。 filter“http and not udp”应该消除SSDP数据包; 显然,它也会消除其他 HTTP-over-UDP数据包,但我不确定是否会有任何不是SSDP数据包的HTTP-over-UDP数据包。
我刚刚使用了工具中的function,右键单击其中一个有问题的数据包,然后select子菜单“作为filter应用”,然后select“..和未select”(在“未选定”分组下) 。
然后它改变了这个表情。
(http)&&!(ip.dst == 239.255.255.250)
因此,使用“expression式”popup式窗口时,只能应用一个filter,但要获取多个filter,您可以键入filterexpression式,然后单击“应用”。 或者使用右键单击上下文菜单,单击“应用为filter”,然后单击“应用”。
这消除了列表中除了4行之外的所有行! 这些都有SSDP协议。
此外,它看起来Wireshark有它自己的问答。
正如Guy Harris的有用答案所表明的那样,SSDP是使用UDP进行传输的HTTP,这意味着它可以简单地被以下情况所捕获:
(!(http && udp))
这使得继续过滤变得容易:
(!(http && udp)) & !ntp & ip.src==192.168.1.1
在我的情况下,索尼蓝光播放器正在使用SSDP进行广告,所以我可以用下面的方法进行过滤:
(!(http && udp && ip.dst==239.255.255.250))
我试过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。