Log-Files
如何使用 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 中獲取數字並將它們相加,這樣我就可以了解在 pcap 的時間範圍內從單個 IP 傳輸了多少數據。
我可以在我用來執行此操作的命令的末尾添加一個命令嗎?或者有沒有一種方法可以直接指向標準輸出,然後將其傳遞給一個可以解析和計算我所追求的程序?任何人都知道可以執行此操作的 tcpdump 類似命令嗎?
awk
可以總結一列數字。像這樣的東西應該可以解決問題。假設您的 tshark 的輸出位於
foo.txt
:$ cat foo.txt | awk '{ sum += $3 } END { print sum }'
您還可以將“grep”的輸出直接通過管道傳輸到
awk
,它會以類似的方式工作。
您可以完全依靠
tshark
IO 統計計算器的統計選項來執行此操作:tshark -r pcapfile -z io,stat,0,"SUM(frame.len)frame.len && ip.src == 192.168.1.1 && ip.proto == 6"
這將顯示一個板,其中
SUM
列是您要查找的數據。