1

wireshark-dissector で受信したパケット サイズを読み取るにはどうすればよいですか? そのデータは tvbuff_t から入手できますか?

4

1 に答える 1

0

「パケットサイズ」とは、tvb でディセクタに渡されるデータのサイズを意味する場合、次のようになります。

tvb_reported_length(tvb)ワイヤーに見られるサイズです。

tvb_length(tvb)実際にキャプチャされたサイズです (ワイヤ上のサイズよりも小さい場合があります)。

いずれの場合も、返されるサイズは、ディセクタに渡されたデータのサイズです (つまり、下位レベルのヘッダー (イーサネットなど) は含まれません)。


完全なパケットのサイズが最初にネットワーク上で見られたとき、または保存されたときのサイズが必要な場合)

pinfo->fd->pkt_len   // packet-len
pinfo->fd->caplen    // amount actually captured

(ディセクタ ソース ツリーの epan/frame_data.h を参照)。

ディセクタは、通常、フレームの実際のフル サイズに関する情報にアクセスする必要はありません (つまり、アクセスする必要はありません)。

これが必要なデータである場合、このデータが必要な理由を示すことができれば、別のアプローチを提案できるかもしれません.

于 2012-12-26T16:06:44.730 に答える