私はこのコマンドを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を使用した同様のコマンドを知っている人はいますか?
awk
は、数値の列を合計できます。このような何かがトリックを行う必要があります。
Tsharkの出力がfoo.txt
にあると仮定します。
$ cat foo.txt | awk '{ sum += $3 } END { print sum }'
「grep」の出力を直接awk
にパイプすることもでき、同様の方法で機能します。
IO統計計算機:)で統計オプションを使用することにより、これを行うために純粋にtshark
に依存することができます。
tshark -r pcapfile -z io,stat,0,"SUM(frame.len)frame.len && ip.src == 192.168.1.1 && ip.proto == 6"
これにより、SUM
列が探しているデータであるボードが表示されます。