【概述】
数据是从链路层到应用层一层一层装配起来的,因此,对于捕获到的数据包,需要一层一层的进行解析。同时,由于每一层可能有多种协议要工作,因此在解析数据包时,要根据不同的特征来判断上层协议。
在网络层,有 ARP、IPv4、IPv6 这三种情况,在链路层的 MAC 头结构中,定义了一个 type 字段,用于指示网络层的数据包的类型,根据协议栈的规定,有:
与网络协议相关的数据结构存放在protocol.h头文件中,该头文件结构如下:
1 | #ifndef PROTOCOL_H |
编写 Sniffer_initCap() 功能函数,通过调用 pcap_findalldevs() 函数获得网卡接口信息来初始化 WinPcap
1 | // 1.初始化WinPcap |