Log-Files

如何使用 tshark 或 tcpdump 計算傳輸的字節數

  • January 30, 2015

我在 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 中獲取數字並將它們相加,這樣我就可以了解在 pcap 的時間範圍內從單個 IP 傳輸了多少數據。

我可以在我用來執行此操作的命令的末尾添加一個命令嗎?或者有沒有一種方法可以直接指向標準輸出,然後將其傳遞給一個可以解析和計算我所追求的程序?任何人都知道可以執行此操作的 tcpdump 類似命令嗎?

awk可以總結一列數字。像這樣的東西應該​​可以解決問題。

假設您的 tshark 的輸出位於foo.txt

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

您還可以將“grep”的輸出直接通過管道傳輸到awk,它會以類似的方式工作。

您可以完全依靠tsharkIO 統計計算器的統計選項來執行此操作:

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

這將顯示一個板,其中SUM列是您要查找的數據。

引用自:https://serverfault.com/questions/663552