pcap文件

PCAP文件结构:


如上图所示在一个Pcap文件中存在1个Pcap文件头和多个数据包,其中每个数据包都有自己的头和包内容。
下面我们先看看PCAP文件头每个字段:
magic为文件识别头,pcap固定为:0xA1B2C3D4。(4个字节)

magor version为主版本号(2个字节)

minor version为次要版本号(2个字节)

timezone为当地的标准时间(4个字节)

sigflags为时间戳的精度(4个字节)

snaplen为最大的存储长度(4个字节)

linktype为链路类型(4个字节)

常用类型:
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
数据包头则依次为:

时间戳(秒)、时间戳(微妙)、抓包长度和实际长度,依次各占4个字节。

构建代码:

#pragma pack( push, 1)
// 为了保证在windows和linux下都能正常编译,放弃使用INT64或者_int_64  
typedef short _Int16;  
typedef long  _Int32;  
typedef char Byte;  

struct __file_header  
{  
    _Int32  iMagic;  
    _Int16  iMaVersion;  
    _Int16  iMiVersion;  
    _Int32  iTimezone;  
    _Int32  iSigFlags;  
    _Int32  iSnapLen;  
    _Int32  iLinkType;  
};  
// 数据包头  
struct __pkthdr  
{  
    _Int32      iTimeSecond;  
    _Int32      iTimeSS;  
    _Int32      iPLength;  
    _Int32      iLength;  
};  
#pragma pack(pop)



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的幸运儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值