当我运行下面的Bash shell脚本时,最后一行报告捕获到4-9个数据包的任何地方,而它应报告捕获到29-34个数据包的任何地方,并显示“ tshark:” RESULTS / C6-1 / C6-1n10.pcap”在小包中间被剪短了。”

如果我在脚本退出后从命令行运行此脚本最后一行中嵌入的tshark命令,则计数正确。

我究竟做错了什么?

#!/bin/bash

tshark -i eth1 -a duration:245 -w RESULTS/C6-1/C6-1n10.pcap &> /dev/null &

# tshark seems to take some time to start. Allow for this.
sleep 10

# This takes 225 seconds to run.
mgen flush input C6-1/C6-1n10.mgn 2>&1 | tee RESULTS/C6-1/C6-1n10_mgen_log.txt

mgen_stats RESULTS/C6-1/C6-1n10_mgen_log.txt 20 20 224 20 239 60 2>&1 | tee RESULTS/C6-1/C6-1n10_mgen_analysis.txt

echo 2>&1 | tee -a RESULTS/C6-1/C6-1n10_mgen_analysis.txt
echo 2>&1 | tee -a RESULTS/C6-1/C6-1n10_mgen_analysis.txt
echo 2>&1 | tee -a RESULTS/C6-1/C6-1n10_mgen_analysis.txt

echo "There should be 29 - 34 messages from group 239.0.20.20. The actual count is:" 2>&1 | tee -a RESULTS/C6-1/C6-1n10_mgen_analysis.txt

# Ensure that the tshark instance we started above has time to exit before we start another instance.
sleep 20

echo `tshark -r RESULTS/C6-1/C6-1n10.pcap -R "ip.src == 104.4.20.2 && ip.dst == 239.0.20.20" | wc -l` 2>&1 | tee -a RESULTS/C6-1/C6-1n10_mgen_analysis.txt

===============>>#1 票数:1 已采纳

您不能保证到那时为止,最初的tshark实例实际上已经完成。 与其使用时间来猜测和使用睡眠,不如使用wait来强制脚本等待tshark完成。

等待后台进程完成,然后退出脚本

===============>>#2 票数:0

  1. 当我们在TShark 1.12.1版本的tshark过滤器中使用“ wc -l”时,返回不正确的数据包计数(在TShark 1.10.1中可以正常工作)

  2. 在TShark 1.12.1版本中使用“(ipv6.nxt == 17)”字段过滤pcap文件时出现的问题(在TShark 1.10.1中可以正常工作)

  ask by Dave translate from so

未解决问题?本站智能推荐:

3回复

使用tshark嗅探数据包

我有2台服务器(serv1,serv2)进行通信,并且我正在尝试嗅探与从serv1传输到serv2的某些条件匹配的数据包。 Tshark已安装在我的Desktop(desk1)上。 我写了以下脚本: 在serv1上运行时,此脚本似乎运行良好(因为serv1将数据包发送到serv2)。
1回复

tshark:保存捕获的数据包时无法应用过滤器

我们有一个用于以前版本的wireshark(1)的命令,但不适用于最新版本(1.6.1)的命令 “ C:\\ Program Files \\ Wireshark \\ tshark.exe” -i \\ Device \\ NPF_ {282F8D86-F9CC-4575-8F20-7E
1回复

如何使用tshark而不是十六进制打印数据列?

虽然这个 - tshark -r .pcap -T fields -e data 输出十六进制,我没有找到一种方法将此列解码为ascii与tshark。 可能吗?
1回复

我可以使用什么捕获过滤器仅捕获tshark命令行界面中的TCP和UDP通信?

HTTP使用端口80。我在Internet上找到了此端口,并使用-f "tcp port 80"作为仅捕获HTTP流量的捕获过滤器: 但是,由于我是新手,因此搜索TCP和UDP使用的端口使我感到困惑,因为它们似乎都具有这么多的端口。 因此,我使用什么捕获过滤器来仅捕获TCP和UDP
1回复

了解tshark输出

我正在尝试使用以下命令了解tshark捕获的网络数据的输出 因此,我在输出中得到了一些数据包,每个数据包都以这样的一行开始: 关于数据包,我有一些基本问题: 框架和数据包是否是同一事物(可互换使用)? 数据包在逻辑上代表1个请求(在我的情况下为HTTP请求)吗?
1回复

无论协议如何,如何使用tshark获取源端口和目标端口?

我正在尝试从数据包中获取一些字段,例如目标ip = ip.dst;。 但是我不确定源端口和目标端口的ID是什么。 从我所看到的,它们似乎是特定于协议的,即udp = udp.destport; 但是我想知道是否有一种方法可以拾取端口而不管协议如何。 以下是我尝试过的示例: -n -T
1回复

沙丘字段名称

您好,如下所示,是从TShark使用“ tshark -i mon0 ”输出的 0.000000 e4:6e:d1:a4:21:3e->广播802.11 251信标帧,SN = 2145,FN = 0,标志= ........ C,BI = 100,SSID = AndroidAP
1回复

tshark无法读取icmp6字段

我可以使用tshark读取/重播所有标头和字段,直到触及IPv6标头(以太网标头和IPv6标头),但是当我尝试重播pcap文件以读取icmpv6字段时,这些字段没有任何显示。 这是tshark的错误吗? 是否有其他工具可以读取数据包所有标头中的所有字段? 我正在使用的tshark版
3回复

如何在服务器和客户端都在同一台机器上时捕获pcap跟踪?

我有一个SMPP服务器和客户端在同一台机器上的不同端口上运行,我想捕获pcap以查看smpp消息。 由于相同的机器,它没有在tshark命令中捕获。 如果同一台机器上的客户端和服务器都有捕获消息的选项吗?
1回复

如何从pcap文件中提取数据

我有一些pcap文件,可以在wirehark中看到内存缓存协议及其对应的数据,但是当我使用tshark批量导出数据时,它仅显示一个字符(0x0b),为什么? 我使用的命令:tshark -Y“内存缓存包含集合” -r input.pcap -T字段-e memcache.value谢谢!