欢迎来到天天文库
浏览记录
ID:32575380
大小:335.30 KB
页数:13页
时间:2019-02-12
《课程设计活动主机扫描》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、课程设计(Ⅰ)报告(2011/2012学年第二学期)题目:活动主机的检测专业计算机科学与技术学生姓名班级学号指导教师指导单位计算机学院计算机系统与网络教学中心日期2012.06.11-2012.06.222指导教师成绩评定表学生姓名班级学号专业计算机科学与技术评分内容评分标准优秀良好中等差平时成绩认真对待课程设计,遵守实验室规定,上机不迟到早退,不做和设计无关的事设计成果设计的科学、合理性功能丰富、符合题目要求界面友好、外观漂亮、大方程序功能执行的正确性程序算法执行的效能设计报告设计报告正确合理、反映系统设计流程文档内容详实程度文档格式规范、排版美观验收答
2、辩简练、准确阐述设计内容,能准确有条理回答各种问题,系统演示顺利。评分等级指导教师简短评语指导教师签名日期2012.06.23备注评分等级有五种:优秀、良好、中等、及格、不及格21313题目一:活动主机的检测一、课题内容和要求1. 设计内容 : 根据协议规定的ICMP数据包的标准格式,编写程序向指定网段中的目的主机发送ICMP数据包,并对目的主机返回的数据包进行解析,以发现那些处于活动状态的主机。2. 设计要求(1)将目的主机的状态显示在屏幕上,具体格式:开始主机扫描活动主机:xx.xx.xx.xx活动主机:xx.xx.xx.xx…(2)要求有
3、良好的编程规范和注释,编程所使用的操作系统、语言和编译环境不限,但是需在课程设计报告文档中予以说明。二、需求分析2.1使用原始套接字,实现发送/监听ICMP报文2.2由于socket发送/捕获的是IP包,因此要分别定义IP头部的数据结构和ICMP头部的数据结构。IP头部的数据结构和ICMP头部的数据结构在概要设计中已有分析。2.3填充并发送请求类型的ICMP报文,填充ICMP报文后,应在ICMP报文之前加上IP报头并发送出去。2.4解析数据包:如果所ping的目的主机存在,那么它会发出一个回送应答包。这是一个IP包,受到后解析此数据包并获得其中的ICMP信
4、息。根据IP报头信息中的IP报头长度字段,就可以得到ICMP报文的真实地址。ICMP数据包中的IP地址就是活动主机的IP。三、概要设计3.1设计原理1313本程序使用的原始套接字生成ICMP请求/应答报文来进行活动主机的探查。这个程序使用的是回送请求和应答消息。程序的大致思想是把ICMP的数据报类型设置为回送请求,将它发送给网络上的一个IP地址,如果这个IP地址已经被占用的话,那么使用位于这个IP地址的主机上的TCP/IP软件就能接受到这个ICMP回送请求,从而返回一个ICMP回送请求(类型号为0)信息。信息封装在一个IP包中,我们需要解析该IP包,从中找
5、到ICMP数据信息,相反,如果这个IP地址没有人使用,那么发送的ICMP回送请求在设定的延时内就不可能得到响应。本设计的主体思想是使用ICMPECHO数据包来探测指定网段内的活动主机。具体方法是:通过简单的发送一个ICMPECHO(Type8)数据包到目标主机,如果ICMPECHOReply(ICMPtype0)数据包接受到,说明主机是存活状态。如果没有就可以初步判断主机没有在线或者使用了某些过滤设备过滤了ICMP的REPLY。 ICMP全称InternetControlMessageProtocol,工作在OSI的网络层。它的中文名为因特网控制报文协议
6、。ICMP报文要封装在IP数据报内部才能传输。其结构如(图1)所示。ICMP报文的格式如(图2)所示。所有的ICMP报文的前4个字节都是一样的,但是其他字节互不相同。其中0-7位是类型字段,8-15位是代码字段,16-31位是校验和字段。校验和字段为2个字节,校验的范围是整个ICMP报文。本设计仅用到类型为0和8的ICMP报文,关于这两种类型报文的具体描述详见(图3)。20B图1:ICMP封装在IP内部IP数据报IP首部ICMP报文31(位)151678类型字段代码字段校验和字段0(不同类型和代码有不同内容)图2:ICMP报文类型代码描述00回应应答(Pi
7、ng应答,与类型8的Ping请求一起使用)80回应请求(Ping请求,与类型8的Ping应答一起使用)图3:本设计使用的ICMP报文类型13133.2数据结构设计3.1.1.IP头部数据结构typedefstructiphdr{unsignedintheadlen:4;//ip头长度unsignedintwersion:4;//ip版本号unsignedchartos;//服务类型unsignedshorttotallen;//ip包总长度unsignedshortid;//ip号unsignedshortflag;//标记unsignedcharttl;
8、//生存时间unsignedcharprot;//协议(UDPTC
此文档下载收益归作者所有