web-dev-qa-db-ja.com

tsharkまたはtcpdumpを使用して送信バイト数を計算する方法

私はこのコマンドをtsharkで使用しています:

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

これは基本的に、ソースIPからの接続のみについてpcapを解析し、各パケットからの全長をバイト単位で検索します。次のような出力が得られます。

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

私がする必要があるのは、Total Lengthから数値を取得し、それらを合計することです。これにより、単一のIPからpcapの時間枠内にネットワーク上で渡されたデータの量を知ることができます。

これを行うために使用しているコマンドの最後に追加できるコマンドはありますか?または、stdoutに直接送信して、それをプログラムにパイプして、自分が何を求めているかを解析および計算できる方法はありますか?これを実行できるtcpdumpを使用した同様のコマンドを知っている人はいますか?

1
user53029

awkは、数値の列を合計できます。このような何かがトリックを行う必要があります。

Tsharkの出力がfoo.txtにあると仮定します。

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

「grep」の出力を直接awkにパイプすることもでき、同様の方法で機能します。

2
EEAA

IO統計計算機:)で統計オプションを使用することにより、これを行うために純粋にtsharkに依存することができます。

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

これにより、SUM列が探しているデータであるボードが表示されます。

3
Xavier Lucas