带协议ICMP的命令行过滤器

时间:2015-03-10 07:02:14

标签: wireshark network-protocols tshark network-traffic

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

我用过这个并且对src和dst主机很有效 -

C:\Program Files\Wireshark>tshark.exe -f "src or dst host 192.192.1.1" -i 1 -a duration:10 -w C:\temp\mycap.cap

这很好用。但是如果我只想捕获协议“icmp”的流量并将流量保存到文件中该怎么办呢?这不起作用 -

C:\Program Files\Wireshark>tshark.exe -f "icmp" -i 1 -a duration:10 -w C:\temp\mycap3.cap

如果我这样做,那么它有效 -

C:\Program Files\Wireshark>tshark.exe -f "icmp"

对于上面的命令,有没有办法知道wireshark已经使用给定的ip列表捕获了特定的icmp流量计数?让我们说10个不同ip的10个icmp流量计数。

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

1 个答案:

答案 0 :(得分:0)

  

这不起作用

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

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

  

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

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

  

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

好吧,如果这是一个BSD风格的UN * X,比如* BSD或OS X,你可以键入control-T并报告它捕获的数据包数量。但是,这是Windows,因此不起作用。

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

  

让我们说10个不同ip的10个icmp流量计数。

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

  

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

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