目录1、课程设计目的.....................................................12、课程设计要求.....................................................23、程序设计分析.....................................................2 3.1 网卡设置.....................................................2 3.2 使用套接字...................................................2 3.2.接收数据包...................................................3 3.3 定义 IP 头部的数据结构........................................3 3.4 IP 包的解析..................................................4 3.5 协议的定义...................................................4 3.6 捕获处理.....................................................54、运行结果.........................................................55、总结.............................................................66、课程设计参考资料.................................................67、源程序代码.......................................................81、课程设计目的 本章课程设计的目的就是设计一个解析 IP 数据包的程序,并根据这个程序,说明 IP 数据包的结构及 IP 协议的相关问题,从而对 IP 层的工作原理有更好的理解和认识。2、课程设计要求 本设计的目标是捕获网络中的 IP 数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。程序的具体要求如下: 1)以命令行形式运行:ipparse logfile,其中 ipparse 是程序名, 而logfile 则代表记录结果的日志文件。 2)在标准输出和日志文件中写入捕获的 IP 包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源 IP 地址和目的 IP 地址等内容。 3)当程序接收到键盘输入 Ctrl+C 时退出3、程序设计分析3.1 网卡设置 为了猎取网络中的 IP 数据包,必须对网卡进行编程,在这里使用套接字(socket)进行编程。但是,在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的数据包或是以广播形式发出的数据包。对于其他形式的数据包,如已到达网络接口,但却不是发送到此地址的数据包,网络接口在骓投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取与自己无关的...