我想使用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流量保存到具有给定持续时间的文件中?
答案 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流量。