2017-10-18 269 views
1

我想创建一个Wireshark的过滤器“小于”显示一个来自或到发送使用Wireshark过滤器不工作

  • DTLS分组
  • 以及 UDP数据包的所有数据包端口号1234和1250之间

我曾尝试使用以下过滤器:

dtls || (udp.port >= 1234 && upd.port <= 1250)然而,Wireshark展示了所有类型的数据包,例如,从端口52795到53的DNS数据包,它完全超出了UDP过滤器部分的范围,并且不是DTLS数据包。

我错过了什么,正确的过滤器表达式是什么?

回答

3

这是一个常见的错误。 udp.port可以被认为是udp.srcport or udp.dstport的一种宏,这意味着只要其中一个大于1234或者任何一个小于1250,那么写入的过滤器将与该分组相匹配。我想你想要的是:

dtls || ((udp.srcport >= 1234 && udp.srcport <= 1250) || (udp.dstport >= 1234 && udp.dstport <= 1250)) 

您可能希望创建一个Wireshark的Display Filter Macro,以帮助简化表达。例如,假设您创建下面的宏:

((udp.srcport >= $1 and udp.srcport <= $2) or (udp.dstport >= $1 and udp.dstport <= $2)) 

然后,你可以应用此过滤器:

dtls || ${udp_portrange:1234;1250}