Networking

如何使用 tshark 來完成這個任務

  • December 2, 2011

我對 tshark 沒有任何基礎知識,而且很難找到任何教程來幫助我。

所以現在我有一個包含很多網路流的 pcap 文件;時間範圍;一個IP地址;一個 TCP 埠號;ip addr 發送的數據包數量或 ip addr 接收的數據包數量。

我要做的是,首先我讓tshark從那個pcap文件中讀取,然後使用時間範圍過濾掉該時間範圍內的所有網路流,然後使用ip addr過濾掉所有網路從那個 ip addr 流到那個已經按時間過濾的流上,然後使用 tcp 埠號和 ip addr 發送/接收的數據包數來最終找到我想要的流。然後按照這個流程/流並將整個對話保存到一個新的 pcap 文件中。

任何人都可以幫忙嗎?我將非常感激。

我想要做的是,首先我讓 tshark 從那個 pcap 文件中讀取,然後使用時間範圍過濾掉該時間範圍內的所有網路流

你應該這樣做editcap

$ editcap -A "2011-07-12 09:49:16" -B "2011-07-12 09:49:20" in.pcap out.pcap

然後使用 ip addr 過濾掉該 ip addr 中的所有網路流,然後使用 tcp 埠號和 ip addr 發送/接收的數據包數,最終定位到我想要的流。

$ tshark -r out.pcap -R "ip.addr == $IP && tcp.port == $PORT"

然後按照這個流程/流

$ tshark -r out.pcap -R "ip.addr == $IP && tcp.port == $PORT" \
   -T fields -e ip.src -e tcp.srcport -e ip.dst -e tcp.dstport | \
   while read line; do tshark -r out.pcap \
       -R "ip.addr == `echo $line | awk '{ print $1 }'` && \
       tcp.port == `echo $line | awk '{ print $2 }'` && \
       ip.addr == `echo $line | awk '{ print $3 }'` && \
       tcp.port == `echo $line | awk '{ print $4 }'`" \     
       echo \
   done

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