大きな pcap ファイルがあり、最初の 10 分間のトラフィックのみを含む新しい pcap を生成したいと考えています。でこれを行うことはできますtcpdump
か? オンラインで言及されているのを見ましたが、可能であればeditcap
使用したいと思います。tcpdump
1 に答える
tcpdump
;でこれを行うことができます。ただし、私が考えることができるeditcap
唯一の実用的な方法は、 Wireshark (または) を使用して、キャプチャ ファイルに少なくとも 10 分のパケットのフレーム番号を最初に見つけることです。フレーム番号を取得したら、そのフレームまでのパケットのみを保存するために使用でき、出力ファイルを目的の 10 分間に効果的に制限します。方法は次のとおりです。tcpdump
tshark
tcpdump
まず、キャプチャ ファイルの開始から 10 分以上経過した最初のパケットを見つけます (ここでは で説明しますtshark
が、Wireshark も使用できます)。
tshark -r bigfile.pcap -Y "frame.time_relative <= 600.0"
表示された最後のパケットのフレーム番号に注意してください。(フレーム番号は、標準の列を想定して、各行の最初の番号ですtshark
。)説明のために、フレーム番号を 21038 とします。
tcpdump
次に、最初の 21038 フレームのみを新しいファイルに保存するために使用します。
tcpdump -r bigfile.pcap -c 21038 -w bigfile_first10min.pcap
ただしeditcap
、Wireshark スイートが付属しているため、以下を使用して同等のことをはるかに簡単に実現できます。これにより、大きなキャプチャ ファイルが 10 分ごとにキャプチャ ファイルに分割されます (最後のものを除いて、それより短い場合があります)。
editcap -F pcap -i 600 bigfile.pcap bigfile_split10min.pcap
最初のファイルだけに関心がある場合は、残りのファイルは無視してください。
もちろん、@ madmax1 が指摘したように、上記のtshark
コマンドに簡単な変更を加えて、フィルターに一致するパケットを新しいファイルに書き込むこともできます。
tshark -r bigfile.pcap -Y "frame.time_relative <= 600.0" -w bigfile_first10min.pcap