如何在Wireshark显示过滤器中按字段出现次数筛选SDP媒体流
解决Wireshark筛选特定出现次数SDP媒体流的问题
可行的显示过滤器语法
直接使用**occurrence**关键字指定字段的出现次数,就能实现你要的筛选逻辑。完整的过滤器如下:
sip && sdp && (sdp.media.occurrence == 1 && sdp.media.format contains "PCMU") && (sdp.media.occurrence == 2 && !sdp.media.format contains "PCMU")
语法说明
sip && sdp:先筛选出携带SDP体的SIP消息,比模糊字符串匹配更准确高效sdp.media.occurrence == N:指定匹配第N次出现的sdp.media字段实例,和你自定义列里的「Field Occurrence」设置完全对应- 分组括号确保每个媒体流的条件独立生效:第一个媒体流(occurrence=1)包含PCMU,第二个媒体流(occurrence=2)不包含PCMU
为什么之前的尝试无效
sdp.media[1]:这是字节数组切片语法,只会提取sdp.media字段值的第2个字节(下标从0开始),和字段出现次数无关sdp.media#1:这是协议层实例编号,用于匹配同一数据包中第2个SDP协议层(SIP里通常只有一个SDP层,几乎用不到),也不是字段的重复出现次数
额外优化提示
如果需要针对媒体流的具体属性(比如媒体类型、端口)进一步精准筛选,可以在对应occurrence的分组里追加条件,比如:
(sdp.media.occurrence == 1 && sdp.media.format contains "PCMU" && sdp.media.m == "audio") && (sdp.media.occurrence == 2 && !sdp.media.format contains "PCMU" && sdp.media.m == "video")
内容的提问来源于stack exchange,提问作者engineAL
相关产品推荐
相关产品推荐

