0
有人可以解释我如何在C中使用pcap数据包标题? 我无法找到关于结构和使用方式的明确解释。了解pcap数据包标题
其实,事情是我不明白我们如何使用PCAP库#include <pcap.h>
事实上,我需要使用 struct pcap_pkthdr *header
但我无法弄清楚如何使用它。
谢谢
有人可以解释我如何在C中使用pcap数据包标题? 我无法找到关于结构和使用方式的明确解释。了解pcap数据包标题
其实,事情是我不明白我们如何使用PCAP库#include <pcap.h>
事实上,我需要使用 struct pcap_pkthdr *header
但我无法弄清楚如何使用它。
谢谢
Pcap为每个数据包定义一个标头。与pcap文件头一起,数据包头将使您能够了解pcap转储中的数据。
struct pcap_file_header {
bpf_u_int32 magic;
u_short version_major;
u_short version_minor;
bpf_int32 thiszone; /* gmt to local correction */
bpf_u_int32 sigfigs; /* accuracy of timestamps */
bpf_u_int32 snaplen; /* max length saved portion of each pkt */
bpf_u_int32 linktype; /* data link type (LINKTYPE_*) */
};
struct pcap_pkthdr {
struct timeval ts; /* time stamp */
bpf_u_int32 caplen; /* length of portion present */
bpf_u_int32 len; /* length this packet (off wire) */
};
因此,首先您将拥有文件头,然后是所有捕获的数据包。 在C中,您可以读取pcap转储的24个字节,然后将这些字节映射到pcap文件头结构。在此之后,您可以开始阅读所有不同的数据包。请注意,有不同版本的pcap,我在这里写的并不适用于每个pcap转储。