Я использую эту команду с 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, который может сделать это?
awk
может суммировать столбец чисел. Что-то вроде этого должно помочь.
Предполагая, что вывод вашего tshark находится в foo.txt
:
$ cat foo.txt | awk '{ sum += $3 } END { print sum }'
Вы также можете направить вывод grep напрямую в awk
, и он будет работать аналогичным образом.
Для этого можно положиться исключительно на tshark
, используя опцию статистики с калькулятором статистики ввода-вывода:
tshark -r pcapfile -z io,stat,0,"SUM(frame.len)frame.len && ip.src == 192.168.1.1 && ip.proto == 6"
Это покажет доску, где Столбец SUM
- это данные, которые вы ищете.