解析arp数据包-计算机网络课程设计

解析arp数据包-计算机网络课程设计

ID:9853530

大小:98.00 KB

页数:11页

时间:2018-05-12

解析arp数据包-计算机网络课程设计_第1页
解析arp数据包-计算机网络课程设计_第2页
解析arp数据包-计算机网络课程设计_第3页
解析arp数据包-计算机网络课程设计_第4页
解析arp数据包-计算机网络课程设计_第5页
资源描述:

《解析arp数据包-计算机网络课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、计算机网络课程设计报告题目:解析ARP数据包姓名:学号:同组姓名:专业班级:指导教师:评阅意见:评定成绩:指导老师签名:年月日10目录一、课程设计目的:2二、课程设计要求:2三、课程设计分析31.课程设计中的重点及难点32.参考算法33.核心代码4四、源程序及运行截图5五、心得体会9六、参考文献1010一、课程设计目的:本课程设计的目的是对网络上的ARP数据包进行解析,从而熟悉ARP数据包的结构,对ARP协议有更好的理解和认识。二、课程设计要求:通过编制程序,获取网络中的ARP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。程序的具体要求如下所示:1.以命令行的形式运

2、行,如下所示:arpparselogfile其中,arpparse为程序名;logfile为日志文件名。2.程序输出内容如下所示:源IP地址 源MAC地址 目的IP地址  操作  时间各部分的说明如下所示:l源IP地址:输出ARP消息格式中的源IP地址字段。l源MAC地址:输出ARP消息格式中的源物理地址字段。l目的IP地址:输出ARP消息格式中的目的IP地址字段。l目的MAC地址:输出ARP消息格式中的目的物理地址字段。l操作:输出ARP消息格式中的操作字段,若为ARP请求,则为1,若为ARP应答,则为2。l时间:该ARP包产生的时间3.当程序接收到键盘输入Ctrl+C时退出。10三、课

3、程设计分析1.课程设计中的重点及难点1)程序中会用到Winpcap,Winpcap是Win32环境下数据包捕获的开放代码函数库。基于Winpcap的应用程序一般按照下面几个步骤进行设计:l输出网卡设备列表。l选择网卡并打开。l捕获数据包时,可能需要设置过滤器。l捕获数据包或者发送数据包。2)在程序设计过程中需要注意网络—主机字节顺序的转化。由于不同的计算机系统所采用的数据表示方式不同,对于2B或4B的数据,有的采用低字节地址存放数据的高权值位,而有的却以低地址字节存放数据低权位值,在网络的数据传输中,我们应该统一表示,所以我们在捕获数据包后,应将数据包头部的表示长度或类型的数据转换成本地机

4、的表达形式。可以利用函数ntohs()将网络字节序转换为主机字节序。3)选择网卡并打开时,注意选择可用的网卡。2.参考算法1)取得当前网卡设备列表。2)选择Ethernet网卡并打开,注意判断所选网卡是否为实际存在的可用网卡。3)设置过滤器,此处的过滤器正则表达式为“arp”或者“etherproto\arp”。4)捕获数据包并进行处理(包括输出各IP地址,物理地址,操作类型以及时间)。由于要记录日志文件,为了便于输出流参数,建议采用pcap_next_ex()函数。流程图如下图所示:10开始获取网卡列表选取Ethernet网卡打开网卡(混杂模式)编译设置过滤器捕获ARP包并将其相应内容

5、输出3.核心代码lARP数据包结构structarppkt{unsignedshorthdtyp;//硬件类型。值0001表示其为Ethernetunsignedshortprotyp;//协议类型。值0800表示上层协议为IPunsignedcharhdsize;//硬件地址长度。值为06unsignedcharprosize;//协议地址长度。值为04unsignedshortop;//操作值为0001/0002,分别表示ARP请求/应答u_charsmac[6];//源MAC地址,6Bu_charsip[4];//源IP地址,4Bu_chardmac[6];//目的MAC地址u_ch

6、ardip[4];//目的IP地址};l获取网络设备列表,并以混杂模式打开网络设备//获取网络设备列表if(pcap_findalldevs(&alldevs,errbuf)==-1){cout<<"Errorinpcap_findalldevs:"<next){//以混杂模式打开网卡,以接受所有的帧if((adhandle=pcap_open_live(d->name,1000,1,300,errbuf))==NULL){cout<<"Unabletoopentheadapter.

7、";pcap_freealldevs(alldevs);//释放设备列表return;}if(pcap_datalink(adhandle)==DLT_EN10MB&&d->addresses!=NULL)break;}l编译过滤器并设置过滤器,只捕获ARP数据包charpacket_filter[]=”etherproto\arp”;//过滤,选择arp协议if(pcap_compile(adhandle,&fcod

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。