我用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
列是您正在查找的数据。