【问题标题】:Wireshark filter with "less than" doesn't work带有“小于”的 Wireshark 过滤器不起作用
【发布时间】:2017-10-18 13:59:01
【问题描述】:

我想创建一个 Wireshark 过滤器来显示所有的数据包

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

我尝试使用以下过滤器:

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

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

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

【问题讨论】:

    标签: wireshark


    【解决方案1】:

    这是一个常见的错误。 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}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 1970-01-01
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多