<p><strong> 一、pcap文件格式</strong></p>
讯享网
一共三部分:
①Global Header:文件头(共24bytes),它定义了本文件的读取规则、最大储存长度限制等内容。

- Magic:4Byte:标记文件开始,并用来识别文件自己和字节顺序。0xa1b2c3d4用来表示按照原来的顺序读取,0xd4c3b2a1表示下面的字节都要交换顺序读取。考虑到计算机内存的存储结构,一般会采用0xd4c3b2a1,即所有字节都需要交换顺序读取。
- Major:2Byte: 当前文件主要的版本号,一般为 0x0200【实际上因为需要交换读取顺序,所以计算机看到的应该是 0x0002】
- Minor:2Byte: 当前文件次要的版本号,一般为 0x0400【计算机看到的应该是 0x0004】
- ThisZone:4Byte:当地的标准时间,如果用的是GMT则全零,一般都直接写 0000 0000
- SigFigs:4Byte:时间戳的精度,设置为 全零 即可
- SnapLen:4Byte:最大的存储长度,如果想把整个包抓下来,设置为 ffff 0000,但一般来说 ff7f 0000就足够了【计算机看到的应该是 0000 ff7f 】
- LinkType:4Byte:链路类型,常用类型有以下几种,其他的,需要用的时候再查就行了。
讯享网
<ul><li>0 BSD loopback devices, except for later OpenBSD</li><li>1 Ethernet, and Linux loopback devices</li><li>6 802.5 Token Ring</li><li>7 ARCnet</li><li>8 SLIP</li><li>9 PPP</li><li>10 FDDI</li><li>100 LLC/SNAP-encapsulated ATM</li><li>101 "raw IP", with no link</li><li>102 BSD/OS SLIP</li><li>103 BSD/OS PPP</li><li>104 Cisco HDLC</li><li>105 802.11</li><li>108 later OpenBSD loopback devices (with the AF_value in network byte order)</li><li>113 special Linux "cooked" capture</li><li>114 LocalTalk</li></ul></li></ul></li><li>Packet Header(共 16 Byte) Packet Header可以有多个,每个Packet Header后面会跟着一串Packet Data,Packet Header定义了Packet Data的长度、时间戳等信息。</li></ul>
小端数据存在内存的小端,表示该数据为小端存放。

②Packet Header:可以有多个,每个Packet Header后面会跟着一串Packet Data,Packet Header定义了Packet Data的长度、时间戳等信息。

报文长度,有可能包有2k,但实际只抓到了一半,即1k,len=2k,caplen=1k。
③Packet Data:…
文件结构图例:

二、pcap文件解析API

1.初始化
2.业务处理
需要一个循环来读取每一个报文
讯享网
3 垃圾回收
报文数量实例:
讯享网






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/178475.html