如何使用tshark或tcpdump来计算传输的字节数

我用tshark使用这个命令:

tshark -r pcapfile "tcp and ip.src==192.168.1.1" -T text -V -x | grep 'Total Length' 

这基本上parsing了来自源ip的连接的pcap,并从每个包中查找总长度(以字节为单位)。 我得到这样的输出:

 Total Length: 125 Total Length: 210 Total Length: 40 Total Length: 125 > etc, etc.... 

我需要做的是从Total Length中获取数字,然后将它们相加,这样我就可以了解在单个IP的pcap时间范围内通过networking传输了多less数据。

有一个命令,我可以添加在我用来做到这一点的结尾? 或者有没有一种方法可以直接inputstdout,然后将其传递给一个可以parsing和计算我之后的程序? 任何人都知道与tcpdump类似的命令可以做到这一点?

awk可以总结一列数字。 这样的事情应该做的伎俩。

假设你的tshark的输出是在foo.txt

 $ cat foo.txt | awk '{ sum += $3 } END { print sum }' 

你也可以将“grep”的输出直接输出到awk ,并且以类似的方式工作。

你可以完全依靠tshark来做到这一点,通过使用IO统计计算器的统计选项:

 tshark -r pcapfile -z io,stat,0,"SUM(frame.len)frame.len && ip.src == 192.168.1.1 && ip.proto == 6" 

这将显示一个电路板,其中SUM列是您正在查找的数据。