PCAP文件格式

、基本格式:
文件头 数据包头 数据报 数据包头 数据报......
二、文件头结构体:
struct pcap_filehdr { unsigned long magic; /* 标识位:0xa1b2c3d4 */ unsigned short version_major; /* 主版本号:默认值为0x2 */ unsigned short version_minor; /* 副版本号:默认值为0x04 */ unsigned long thiszone; /* 区域时间:未使用,设置为0 */ unsigned long sigfigs; /* 精确时间戳:未使用,设置为0 */ unsigned long snaplen; /* 捕捉数据包长度:如果所有数据包都要抓获,将该值设置为0xFFFF */ unsigned long linktype; /* 链路层类型:数据包的链路层包头决定了链路层的类型 */ };
以下是数据值与链路层类型的对应表
0            BSD       loopback devices, except for later OpenBSD
1            Ethernet, and Linux loopback devices   以太网类型,大多数的数据包为这种类型。
6            802.5 Token Ring
7            ARCnet
8            SLIP
9            PPP
10          FDDI
100        LLC/SNAP-encapsulated ATM
101        raw IP, with no link
102        BSD/OS SLIP
103        BSD/OS PPP
104        Cisco HDLC
105        802.11
108        later OpenBSD loopback devices (with the AF_value in network byte order)
113               special Linux cooked capture
114               LocalTalk
 
三、数据包头结构体:
struct pcap_pkthdr { struct timeval tv; /* 时间戳, 记录从格林尼治时间的1970年1月1日00:00:00 到抓包时经过的时间 */ unsigned long cap_len; /* 抓获的数据包长度,单位:字节 */ unsigned long real_len; /* 数据包实际长度,可能比抓获的数据包长度大 */ };
参考文档:
http://blog.csdn.net/anzijin/archive/2008/01/01/2008333.aspx

你可能感兴趣的:(PCAP文件格式)