- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验IP数据包捕获程序设计.
实验三IP数据包捕获程序设计实验指导及实验报告班级姓名学号实验目的1)IP数据包是网络协议学习过程中容易接触到的,本实验让同学们将所学知识加以运用,并加强掌握 IP 数据报格式、理解 IP 协议的工作原理及工作过程、掌握捕获 IP 等数据报以及对捕获到的 IP 数据报进行分析的能力。2)希望通过探索,在实践应用中提高自己的编程能力。实验环境系统环境:Windows操作环境编程语言: C++程序设计语言必要软件:Visual C++设计要求实现程序应为图形化界面,可以输入需要捕获的数据包数量,输出每个数据包的相关字段值(包括版本、总长度、标志位、片偏移、协议、源地址与目的地址)。要求遵循RFC791的相关IP协议规定,可以捕获通过本地网卡的IP数据包。点击Capture按钮,实现对指定数量的IP数据包的捕抓过程。要求有良好的编程规范与注释信息。要求有详细的说明文档,包括程序的设计思想、工作流程、关键问题等。要求在Windows操作系统环境中,使用Visual C++编程工具实现。实验步骤创建原始套接字为了不活经过本地网卡的IP数据包,需要使用原始套接字来进行通信。首先,调用socket()函数创建原始套接字,SOCK_RAW表示原始套接字,IPPROTO_IP表示IP协议;然后,调用bind()函数将套接字与本地网卡绑定;最后,调用setsockopt()函数社设置接收超时,SOL_SOCKET表示在套接字层设置,SO_RCVTIMEO表示接收超时,RecvTime表示超时时间,它被设置为5000ms。下面给出的是创建原始套接字的代码://建立于Winsock库的绑定WSAStartup(MAKEWORD(2,2),WSAData);//创建原始套接字socket(AF_INF,SOCK_RAW,IPPROTO_IP);sockaddr_in HostAddr;HostAddr.sin_family=AF_INF;HostAddr.sin_addr.s_addr=(*(in_addr)pHostent-h_addr).s_addr;//套接字绑定本地网卡bind(Socket,(PSOCKADDR)HostAddr,sizeof(HostAddr));//设置接收超时时间int RecvTime=5000;setsockopt(Socket,SOL_SOCKET,SO_RCVTIMEO,(char*)RecvTime,sizeof(RecvTime));定义IP头部的数据结构IP数据包由IP头部与IP数据构成,需要自行构造的是IP数据包的头部。在解析IP头部的各个字段之前,首先需要构造IP头部的数据结构,包括1字节的版本与头部长度、1字节的服务类型、2字节的总长度、2字节的标识符、2字节的标志位与片偏移、1字节的生存周期、1字节的协议、2字节的头部校验、4字节的源地址与4字节的目的地址。这里,不需要构造选项与填充字段。下面给出的是构造IP头部结构的代码://定义IP头部结构typedef struct IP_HEAD{union{ugsigned char Version;ugsigned char HeadLen;};ugsigned char ServiceType;ugsigned short TotalLen;ugsigned short Identifier;union{ugsigned short Flags;ugsigned short FragOffset;};ugsigned char TimeToLive;ugsigned char Protocol;ugsigned short HeadChecksum;ugsigned int SourceAddr;ugsigned int DestinAddr;}ip_head;接受与解析IP数据包默认情况下,网卡不会接收目的地址不是自己的IP数据包,也就是说应用程序无法接收无关的数据包。首先,调用ioctlsocket()函数将网卡设置为混杂模式,IO_RCVALL表示允许网卡接收所有数据包,dwValue为输入/输出参数,dwValue=1表示执行操作;然后,调用recv()函数接收通过网卡的IP包,由于IP包的最大长度为65535字节,因此接收缓冲区的大小不能小于65535字节;最后,将IP包头部复制到定义的IP头部结构中,并且依次将那些需要解析的字段值取出。下面给出的是接收与解析IP数据包的代码://设置网卡为混杂模式#define IO_RCVALL _WSAIOW(IOC_VENDOR,1);DWORD dwValue=1;ioctlsocket(Socket,IOC_VENDOR,dwValue);//接受数据包recv(Socket,RecvBuf,s
您可能关注的文档
- 实验6先进的热加工测试技术..doc
- 实验6Web服务的配置与管理..doc
- 实验6三相电路电压电流及功率的测量..doc
- 实验6典型温度传感器的使用..doc
- 实验6分子系统发育分析..doc
- 实验6单片机与PC机间的串行通信..doc
- 实验6协整理论及预测..docx
- 实验6投篮的出手角度问题..doc
- 实验6子程序设计..doc
- 实验6控件数组编写计算器程序..doc
- 37中考名著专题课件-西游记-情节-第64回 荆棘岭除妖.pptx
- 14中考名著专题课件-西游记-情节-第16-17回 收服黑熊精.pptx
- 第02课 只有社会主义才能救中国(复习课件)(安徽专用).pptx
- 20中考名著专题课件-西游记-情节-第27回 三打白骨精.pptx
- 05中考名著专题课件-西游记-情节-第5回 大闹蟠桃会.pptx
- 07中考名著专题课件-西游记-情节-第7回 被压五行山.pptx
- 第01讲 必背120个文言实词(81-120)(知识清单)(全国通用)解析版-2026年高考语文一轮复习.docx
- 03中考名著专题课件-西游记-情节-第3回 借宝龙宫.pptx
- 33中考名著专题课件-西游记-情节-第55回 大战蝎子精.pptx
- 15中考名著专题课件-西游记-情节-第18-19回 计收猪八戒.pptx
文档评论(0)