rdpcap
Scapy の機能を使用して PCAP ファイルを読み込んでいます。Scapy の HTTP サポートへのリンクで説明されているモジュールも使用します。これは、すべての HTTP 要求と応答、およびそれらに関連するパケットを取得する必要があるためです。
rdpcap
大きな PCAP ファイルを解析すると、関数の読み取りに時間がかかりすぎることに気付きました。
pcap
ファイルをより速く読み取るための解決策はありますか?
rdpcap
Scapy の機能を使用して PCAP ファイルを読み込んでいます。Scapy の HTTP サポートへのリンクで説明されているモジュールも使用します。これは、すべての HTTP 要求と応答、およびそれらに関連するパケットを取得する必要があるためです。
rdpcap
大きな PCAP ファイルを解析すると、関数の読み取りに時間がかかりすぎることに気付きました。
pcap
ファイルをより速く読み取るための解決策はありますか?
Scapy にはsniff
、pcap ファイルを読み取るために使用できる別の方法もあります。
def method_filter_HTTP(pkt):
#Your processing
sniff(offline="your_file.pcap",prn=method_filter_HTTP,store=0)
rdpcap
pcap ファイル全体をメモリにロードします。したがって、多くのメモリを使用し、あなたが言ったように遅いです。whilesniff
は一度に 1 つのパケットを読み取り、提供された関数に渡しprn
ます。このstore=0
パラメータにより、パケットが処理されるとすぐにメモリから削除されます。
ロード時間が予想よりも長いことに同意しますが、ファイルが解析されて高度に構成されたオブジェクトの配列が生成されている可能性があります。私がしなければならなかったことはeditcap
、パケットキャプチャを切り刻んで読みやすくすることでした。例えば:
$ editcap -B 2013-05-2810:05:55 -i 5 -F libpcap inputcapture.pcap outputcapture.pcap
注意: このコマンドのスイッチの完全な説明は、ここで入手できます。
また、ファイルを解析できる scapy の関数-F libpcap
を取得するには、(少なくとも私にとっては) その部分が必要であるように思われました。pcap
(これは、デフォルトの pcap ファイル出力形式であるはずですが、何らかの理由で、これは私には当てはまりませんでした。入力ファイルと出力ファイルのファイル タイプを確認するには、capinfos
(たとえば、単純に と入力しますcapinfos your_capture.pcap
)。
capinfos
との両方editcap
が WireShark ディストリビューションで利用可能です。