Как использовать tshark или tcpdump для вычисления переданных байтов

Я использую эту команду с tshark:

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

Это по существу анализирует pcap только для соединений от исходного IP и ищет общую длину в байтах от каждого пакета. Я произвожусь как это:

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

То, что я должен сделать, является взятием числа от Общей длины, и сложите их так, я могу понять то, сколько данных было передано по проводу в период времени pcap от единственного IP.

Существует ли команда, я могу прибавить конец того, который я использую, чтобы сделать это? Или существует ли способ, которым я могу прямо к stdout и затем передавать это по каналу к программе, которая может проанализировать и вычислить то, что я после? Кто-либо знает о подобной команде с tcpdump, который может сделать это?

1
задан 30 January 2015 в 00:33
2 ответа

awk может суммировать столбец чисел. Что-то вроде этого должно помочь.

Предполагая, что вывод вашего tshark находится в foo.txt :

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

Вы также можете направить вывод grep напрямую в awk , и он будет работать аналогичным образом.

2
ответ дан 3 December 2019 в 17:06

Для этого можно положиться исключительно на tshark , используя опцию статистики с калькулятором статистики ввода-вывода:

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

Это покажет доску, где Столбец SUM - это данные, которые вы ищете.

3
ответ дан 3 December 2019 в 17:06

Теги

Похожие вопросы