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