我想创建一个Wireshark过滤器,显示所有
的数据包我尝试使用以下过滤器:
dtls || (udp.port >= 1234 && upd.port <= 1250)
Wireshark显示了所有类型的数据包,例如端口52795到53的DNS数据包,完全超出UDP过滤器部分的范围,不是DTLS数据包。
我缺少什么,正确的过滤表达式是什么?
答案 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}