2017-10-18 97 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}