0

しますか

pcap_t *pcap_open_offline(const char *fname, char *errbuf) 

libpcapからpcapファイル全体をメモリに読み込みますか?そうでない場合は、tcpsliceまたは同様のツールを使用してpcapファイルを分割する必要がありますか?

ありがとう。

4

1 に答える 1

1

あなたの質問を表現する奇妙な方法ですが、私は私ができることを試して答えます。

pcap_open_offline().dumpファイル(またはtcpdump、tcpslice、またはlibpcapのpcap_dump_open()+pcap_dump()関数からの同様の名前の出力)を入力として受け取ります。

このファイルの形式と機能は、ネットワークデバイスIEのライブトレースとまったく同じです。このpcap_tオブジェクトは、pcap_next、pcap_loopなどで使用できます。

ダンプファイルを何らかの方法で変更すると(つまり、情報を削除するか、tcpsliceまたはwiresharkで必要なものだけを解析する)pcap_open_offline()、ライブパケットトレースの方法でフォーマットされないため、によって読み取り不能になります。

ただし、ファイル全体を一度にメモリにロードするわけではありません。ライブトレースからパケットをストリーミングするのと同じように、ファイルをストリーミングします。

要約pcap_open_live()すると、変更されていないtcpdump / tcpsliceダンプを開き、ライブストリームのように読み取ります。ダンプが非常に大きくなる可能性があるため、ファイル全体をメモリにロードしません。代わりに、ファイルを通過するだけで、一度に1パケット分のファイルのみがロードされます。

于 2011-06-03T00:11:07.793 に答える