发现网络中的活动主机报告及源代码

发现网络中的活动主机报告及源代码

ID:35216957

大小:136.00 KB

页数:25页

时间:2019-03-22

发现网络中的活动主机报告及源代码_第1页
发现网络中的活动主机报告及源代码_第2页
发现网络中的活动主机报告及源代码_第3页
发现网络中的活动主机报告及源代码_第4页
发现网络中的活动主机报告及源代码_第5页
资源描述:

《发现网络中的活动主机报告及源代码》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、目录一.课程设计目的…………………………………………………………………2二.课程设计要求…………………………………………………………………2三.相关知识………………………………………………………………………2四.课程设计分析…………………………………………………………………4五.程序流程图……………………………………………………………………7六.程序运行结果截图……………………………………………………………10七.课程设计心得…………………………………………………………………10八.附录:参考文献………………………………………………………………1124一.课程设

2、计目的:IP协议的优点是简洁,但缺少差错控制和查询机制,而网际控制报文协议(ICMP)具有补充IP功能的作用。在网络管理中,常常要确定当前网络中处于活动状态的主机,这时可以通过使用ICMP的回送和回送响应消息来完成这项工作。本课程设计的目的就是编制程序,利用ICMP数据包,发现指定网段中的活动主机。通过课程设计,使学生更加熟悉ICMP报文的结构,对ICMP协议有更好的理解和认识。二.课程设计要求:设计程序,其功能是发送ICMP数据包,以获取指定网段中的活动主机,并将结果显示在标准输出上。程序的具体要求如下:1)用命令行形式运行:scanhostStart_IPE

3、nd_IP其中scanhost为程序名;Start_IP为被搜索网段的开始IP地址;End_IP为被搜索网段的结束IP地址。2)输出格式为:活动主机1活动主机2……三.相关知识:编制程序前首先要对ICMP报文的格式有一定的了解,ICMP报文是在IP数据报内部传输的,其结构如图10-1所示:IP数据报IP首部ICMP报文ICMP报文的格式如图10-2所示:078151631(位)类型字段代码字段校验和字段24(不同类型和代码有不同内容)所有报文的前4个字节都是一样的,但是其它字节则互不相同。其中类型字段可以有15个不同的值,以描述特定类型的ICMP报文,某些ICM

4、P报文还使用代码字段的值来进一步描述不用的条件。按验和字段为2字节,校验的范围是整个ICMP报文。检验和是必须的,其计算方法与IP协议头部校验和的计算方法一样。各种类型的ICMP报文如图10-3所示(ICMP报文类型),不同类型由报文中的类型字段和代码字段来共同决定。类型代码描述00回送响应(PING应答)3目的不可达0网络不可达1主机不可达2协议不可达3端口不可达4需要进行分片但设置了禁止分片比特5源主机选择路由失败6无法识别目的网络7无法识别目的主机8源主机被隔离9目的网络被禁止10目的主机被禁止11由于服务类型(TOS),网络不可达12由于服务类型(TOS

5、),主机不可达13由于过滤,通信被强行禁止14主机越权15优先权终止生效40源端被关闭(基本流控制)5重定向0对网络重定向1对主机重定向2对服务类型和网络重定向3对服务类型和主机重定向80回送请求(PING请求)90路由器通告100路由器请求11超时0传输期间生存期减为01数据报组装期间生存期减为02411参数问题0各种IP头部错误1缺少必须的选项130时间戳请求140时间戳应答150信息请求(已作废)160信息应答(已作废)170地址掩码请求180地址掩码应答10-3ICMP报文类型本课程设计的目的是发现网络中的活动主机,就是使用ICMP的回送和回送响应消息发

6、现网络中的活动主机,即Ping消息的请求和应答。那幺,发送的ICMP的数据包类型设置为回送请求(类型号为8)。四.课程设计分析:本程序使用原始套接字生成ICMP报文来进行活动主机的探查。这个程序使用的是回送请求与应答消息。程序的大致思想是把ICMP的数据包类型设置为回送请求,将它发送给网络上的一个IP地址,如果这个IP地址已经被占用的话,那幺使用位于这个IP地址的主机上的TCP/IP软件就能够接收到这个ICMP回送请求,从而返回一个ICMP回送响应(类型号为0)信息。信息封装在一个IP包中,我们需要解析该IP包,从中找到ICMP数据信息。相反,如果这个IP地址没

7、有人使用,那幺发送的ICMP回送请求在设定的延时内就不可能得到响应。在初始化原始套接字之后,本程序就要开始在一个IP网段内寻找活动主机。因为要寻找的主机可能很多,为节省时间可以采用多线程编程。下面接结合核心代码对程序的具体实现进行讲解,同时为使程序流程更加清晰,去掉了错误检查等保护性代码。1.使用原始套接字为了实现发送/监听ICMP报文,必须使用原始套接字,创建原始套接字的代码如下:socketsockRaw;sockRaw=WSAocket(AF_INET,sock_Raw,IPPROTO_ICMP,NULL,0,WSA_FLAG_OVERLAPPED);在W

8、SASocket函数中,

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

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

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