您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 计算机网络课程设计_基于ICMPTCP的网段端口扫描_C语言编写
ronnie1课程设计任务书【设计目的】加深对TCP/IP协议的理解,熟悉Socket编程【设计任务】实现一个扫描器,必须能够完成以下所有功能:使用TCPconnect、TCPSYN和TCPFIN进行端口扫描,使用ICMPecho扫描实现IP扫描。并把结果记录下来。【设计要求】Windows或Linux环境下,程序在单机上运行。演示:使用端口扫描对一台主机进行扫描,并显示结果(一台主机上有哪些端口是打开的)。对一个网段进行IP扫描,显示结果(一个网段内有哪些主机是开机的)。友好的用户界面【设计要求】程序源代码,必须有详细的注释。项目设计报告。ronnie2网段和端口扫描程序一、概述...........................................................................................................................31.1端口扫描...............................................................................................................31.2端口扫描常用技术简介......................................................................................31.2.1connect()扫描..........................................................................................31.2.2SYN扫描...................................................................................................41.2.3XMAS-TREE扫描.....................................................................................41.3网段扫描...............................................................................................................5二、需求分析....................................................................................................................62.1设计功能..............................................................................................................62.2设计要求..............................................................................................................6三、概要设计....................................................................................................................63.1设计概念和处理流程..........................................................................................63.2结构设计..............................................................................................................83.2.1数据结构及定义......................................................................................83.2.2接口函数...................................................................................................9四、细设设计.................................................................................................................104.1实现原理...........................................................................................................104.1.1connect()函数端口扫描的原理..........................................................104.1.2ICMP网段扫描的原理.........................................................................124.2函数实现...........................................................................................................154.2.1初始化winsock动态链接库..............................................................154.2.3地址解析.................................................................................................154.2.4计算检验和............................................................................................164.2.5网段扫描................................................................................................174.2.6端口扫描................................................................................................18五、总结与体会...........................................................................................................205.1程序运行与调试..............................................................................................195.2体会...................................................................................................................21六、参考文献...............................................................................................................226.1参考书目...........................................................................................................226.2引用网址...........................................................................................................22ronnie3一、概述1.1端口扫描端口扫描是指利用TCP协议的面向连接的特性,使用本地计算机试图与目的主机的某个端口建立连接,以此来试探目的主机的一些端口的具体状态,如是否打开,若是打开的又运行什么样的程序(利用熟知端口很容易知道)。端口扫描有很多技术实现。其中最常用的有:connect()扫描,TCPSYN扫描,TCPFIN扫描,TCPNULL扫描,XMAS-TREE扫描(圣诞树扫描)等等。在本程序中使用的是connect()扫描。1.2端口扫描常用技术简介1.2.1connect()扫描此扫描的原理是,本地计算机利用TCP协议的三次握手原理(RFC793)试图与网络上一台主机或服务器建立TCP连接。如果目的主机或服务器回送SYN/ACK则说明该端口开放,否则该端口关闭。具体的过程:1.Client端发送SYN2.Server端发送SYN/ACK(该端口开放),或Server端发送RST/ACK(该端口关闭),若无应答可能目的主机或服务器不可达。3.Client端发送ACK,连接建立。4.Client端主动断开连接,连接关闭。过程图如下:ronnie41.2.2SYN扫描SYN扫描前两步与connect()扫描相同,只是最后一步,Client端发送的不是ACK确认报文而是RST报文,这样三次握手过程就没有完成,Client与Server也就没有建立TCP连接,因此前述过程不会被Sever端记录到系统日志中,扫描更加隐蔽。过程图如下:1.2.3XMAS-TREE扫描通过发送带有以下标志位TCP数据包URG,PSH,FIN来试探主机。ronnie5在目标端口开放的情况下不放回任何信息。端口开放:发送URG/PSH/FIN,没有响应。端口关闭:1.发送URG/PSH/FIN,没有响应。2响应RST。1.3网段扫描网段扫描是指利用ICMP(因特网控制报文协议)对某一网段的所有IP地址发送ICMP报文,测试IP地址所对应的主机具体情况(如是否开机等)。所以对目的主机回答的ICMP报文进行分析是网段ronnie6扫描的关键。常见的报文类型有:类型(type)代码(code)描述差错查询00回显回答*31主机不可达*3端口不可达*80请求回显*二、需求分析2.1设计功能实现一个扫描器,使用TCPconnect、TCPSYN或TCPSYN进行端口扫描,使用ICMPecho扫描实现IP扫描,并记录结果。2.2设计要求Windows或Linux环境下,程序应在单机上运行。使用端口扫描对一台主机进行扫描,并显示结果,在一定的端口范围内,该主机由哪些端口是打开的。对一个网段进行IP扫描,显示结果,该网段的哪些主机是开机的。友好的界面,便于用户操作,完成全部设计功能。三、概要设计3.1设计概念和处理流程程序使用WindowsSocketsAPI编程,利用winsock2库函数提供的函数实现与主机间的连接,发送ICMP报文。详见WinsockReferen:
本文标题:计算机网络课程设计_基于ICMPTCP的网段端口扫描_C语言编写
链接地址:https://www.777doc.com/doc-4308429 .html