tshark - 如何避免选择 null 或空的 http.referer 字段

问题描述 投票:0回答:1

在 Tshark v. 3.0.5 上,我尝试运行这些命令以选择用户直接输入的 URL。所以我需要排除空的 http.referer 字段(为空)。

tshark -Y "http.request == 1 and **!http.referer**" -T fields -e frame.time -e http.referer -e http.host -r traffic.pcap > no_referer.txt
bash: !http.referer: event not found

tshark -Y "http.request == 1 and **http.referer == ""**" -T fields -e frame.time -e http.referer -e http.host -r traffic.pcap > no_referer.txt
Running as user "root" and group "root". This could be dangerous.
tshark: Unexpected end of filter string.

您知道如何在 tshark 上选择此数据吗?

tshark
1个回答
2
投票

Bash 会将显示过滤器中的

**
扩展为您可能不想要的内容,因为您使用双引号。您可以使用单引号来确保 bash 不会更改显示过滤器的内容。

根据 wireshark http 文档

http.referer
是一个字符串,因此检查空值就是检查
""
。因此,使用
http.referer and !http.referer == ""
来获取具有此字段的数据包,但也可以获取该字段不为空的数据包。

tshark -Y 'http.request == 1 and http.referer and !http.referer == ""' ...

field != value
!field == value
是不同的,首选后者。 dftest 可以用来来演示为什么会这样。

© www.soinside.com 2019 - 2024. All rights reserved.