2012-02-08 61 views

回答

0

你想从文件头中检索什么信息?

您可以使用pcap_major_version()pcap_minor_version(),快照长度为pcap_snapshot(),链接层类型为pcap_datalink()获取主版本和次版本。不能保证时区偏移和时间戳准确性是有效的(libpcap将两者都设置为0)。另请注意,libpcap 1.1.0和更高版本可以读取pcap-ng文件,其中不具有 pcap文件头。

Libpcap库不提供程序直接交给你的文件头,并且不提供任何你可以类型转换是文件头,所以你无法做到这一点,和libpcap。如果你想读取文件头,你必须编写自己的代码替换 libpcap,并且该代码将无法处理,例如,pcap-ng文件(这将是默认的文件类型不同于使用libpcap的代码(只要pcap-ng文件中的所有网络接口具有相同的链接层标题类型和快照长度,它们可以读取pcap-ng文件libpcap 1.1.0或更高版本)。

0

pcap文件头由libpcap内部处理。你不应该手动操作它。

您可以使用pcap_dump_open打开pcap文件进行书写。

您可以使用pcap_open_offline打开一个pcap文件供阅读。

+0

如果万一我想读取文件头,那么我应该将文件处理程序类型转换为文件头结构? @sander – user1192671 2012-02-08 12:32:32

+0

@ user1192671:比这更复杂一点(在文件开头有一个神奇的数字,需要进行解释)。但是您可以检查'pcap_fopen_offline'的实现来了解如何读取pcap文件头。毕竟,libpcap是开源的。 – 2012-02-08 12:43:35