“小于”的Wireshark过滤器不起作用

时间:2017-10-18 13:59:01

标签: wireshark

我想创建一个Wireshark过滤器,显示所有

的数据包
  • DTLS包
  • 以及从1234到1250之间的端口号发送的UDP数据包

我尝试使用以下过滤器:

dtls || (udp.port >= 1234 && upd.port <= 1250)

然而,

Wireshark显示了所有类型的数据包,例如端口52795到53的DNS数据包,完全超出UDP过滤器部分的范围,不是DTLS数据包。

我缺少什么,正确的过滤表达式是什么?

1 个答案:

答案 0 :(得分: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}