带有协议 ICMP 的命令行过滤器



我想使用 Wireshark 命令行 (tshark.exe) 来捕获 icmp 流量。

我使用了它,并且对于 src 和 dst 主机工作得很好-

C:Program FilesWireshark>tshark.exe -f "src or dst host 192.192.1.1" -i 1 -a duration:10 -w C:tempmycap.cap

这工作正常。但是,如果我只想捕获协议"icmp"的流量并将流量保存到文件中,该怎么办?这行不通——

C:Program FilesWireshark>tshark.exe -f "icmp" -i 1 -a duration:10 -w C:tempmycap3.cap

如果我这样做,那么它就可以了-

C:Program FilesWireshark>tshark.exe -f "icmp"

对于上述命令,有没有办法知道 wireshark 已经捕获了具有给定 IP 列表的特定 icmp 流量计数?假设 10 个不同 IP 的 icmp 流量计数为 10。

或者,我需要更改命令以将 icmp 流量保存到具有给定持续时间的文件?

这不起作用

什么"不起作用"? 它不会向文件写入任何数据包吗? 如果是这样,您确定有 ICMP 数据包要写入吗?

尝试在运行 TShark 时在另一个命令窗口中执行"ping"命令;如果捕获数据包,也许问题只是在 TShark 捕获的 10 秒内没有发送或接收 ICMP 流量。

如果我这样做,那么它可以工作

该命令没有时间限制,因此如果它运行较长时间,则可能足够长,可以发送或接收某些 ICMP 数据包。

对于上述命令,有没有办法知道 wireshark 已经捕获了具有给定 IP 列表的特定 icmp 流量计数?

好吧,如果这是一个BSD风格的UN*X,比如*BSD或OS X,你可以输入control-T,它会报告它捕获了多少数据包。 但是,这是Windows,所以这不起作用。

但是,如果您不使用 -q 标志运行 TShark,它应该打印出捕获的数据包的运行计数;您应该已经看到该计数带有 C:Program FilesWireshark>tshark.exe -f "icmp"

假设 10 个不同 IP 的 icmp 流量计数为 10。

TShark 将报告捕获的数据包计数,但它不会报告地址计数,只会报告数据包总数。

或者,我需要更改命令以将 icmp 流量保存到具有给定持续时间的文件?

您键入的第一个命令(带有 -a duration:10持续时间为 10 秒的正确命令。 也许您需要更改的是持续时间,例如,捕获 2 分钟的-a duration:120,以便查看 ICMP 数据包。 我在机器上运行了 tcpdump 超过 10 秒,过滤器为"icmp",没有看到 ICMP 流量;ICMP 数据包要么指示问题(希望在您的网络上很少见),要么指示信息查询和 ping 的结果(也可能很少见),因此您可能根本没有很多 ICMP 流量。

最新更新