毕业设计(论文)实用网络检测工具包的设计与实现_第1页
毕业设计(论文)实用网络检测工具包的设计与实现_第2页
毕业设计(论文)实用网络检测工具包的设计与实现_第3页
毕业设计(论文)实用网络检测工具包的设计与实现_第4页
毕业设计(论文)实用网络检测工具包的设计与实现_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要在网络信息化的今天,人们对网络的使用也越来越多,了解网络状态及网络安全也引起用户的更多注意。如何才能清楚知道您的网络连接状况及端口安全?网络工具发挥了重要的作用。在本论文中详细介绍了几个常用的网络工具聚集而成的工具包的开发全过程。系统功能包括一般人都知道操作系统自带的网络工具,像ping。除此之外,本系统还具备端口侦听及扫描、域名查找及网络连接状态检测的功能,它能方便用户了解网络商品使用情况,测试目标计算机上的这些服务,发现存在的漏洞,增强网络安全。系统采用visual basic6.0工具进行开发,大多是直接利用vb自带的网络相关控件和api函数来实现 。该该软件的开发满足了网络检测工

2、具包系统的软件集成需要,达到了预期目的。关键词:端口侦听 域名查找 端口扫描 状态检测abstractin network information days , people use the network more and more.at the same time, understand network status and network safeties are also paid more attentions to.how to know clearly your network connect condition with the port safety?the network

3、tool playes an important role.this thesis will introduce the whole development procedure of network tools .the tool pack is made up of several common network tools.the system function includes network tools that ordinary people all know, such as the ping instruction.in addition, this system still ca

4、n hear and scan the port , check area names and examine network connection condition .the tool make it convenient for customers to know network merchandise usage circumstance and test the services of the target computer on board.it also can discover existent of loophole and strengthen network safety

5、.the system developing tool is visual basic6.0.most of the functions are accomplished by making use of the vb relative component and taking piece with the function of api.key words:port scanning,port listening,seeking area names,checking the network conditions绪论计算机的诞生无疑给人类的学习带来了巨大的变化,让人类从烦琐的工作中解脱出来。

6、而网络的诞生却给人类的生活带来了根本的变化,许多人们根本没有想到过的事情现在就很容易地发生在身边。internet有强大的通信功能,如文件传送、远程登录、e-mail等。同时它又是一个大型信息资源库,其所含信息不仅包罗万象,而且日新月异。网络安全也随着互联网运用的广泛而受到许多用户的关注,像黑客攻击很多都是在网络上发现端口漏动,从而入侵别人电脑,修改用户信息,带产生的后果不言而喻。网络检测工具包主要是综合当前常用的网络工具用户更方便的检测网络及实现部分网络功能,windows系统自身带有不少功能很不错的网络工具,用于网络系统的配置、测试和故障排除等用途,将这些程序集合起来组成一个功能更强大的网

7、络工具,该软件能够实现ping命令、能对端口进行侦听和扫描、域名查找和网络连接状态检测。无须再在dos下输入命令,让用户使用起来更加方便快捷。开发网络工具包是迎合的现今网络时代的需要,让internet用户更好的使用网络,增强网络安全维护。目 录摘 要1abstract2绪论31 需求分析61.1 ping命令需求61.2端口扫描需求61.3端口侦听需求61.4网络状态检测需求61.5域名查找需求72 开发环境介绍82.1系统环境82.1.1系统开发平台82.1.2 系统开发工具82.2 visual basic 6.0开发环境简介及功能特点83 系统相关基本原理103.1端口简介103.2端

8、口分类103.3端口侦听原理133.4端口扫描原理153.5 tcp/ip的通讯协议153.6 winsock介绍164系统功能总体设计184.1系统功能描述184.2 ping命令模块184.3端口侦听184.4网络状态检测184.5端口扫描194.6域名查找模块195 系统功能详细设计205.1主界面部分:205.2 ping命令的实现215.3端口扫描225.4端口侦听255.5 网络连接状态检测265.6域名查找276 系统测试286.1测试方法286.2系统测试及结果287总结30参考文献31致 谢32 1 需求分析1.1 ping命令需求ping命令是一个常见而实用的网络管理工具,

9、用这种工具可以测试端到端的连通性,即检查源端到目的端网络是否通畅。检测网络通畅对许多网络用户来说也是非常重要的,当网络连接过程中出现故障时,可通过ping命令很快检测出来,因此该命令在现实中也用得比较广。ping的原理很简单,就是从源端向目的端发出一定数量的网络包,然后从目的端返回这些包的响应,如果在一定的时间内源端收到响应,则程序返回从包发出到收到的时间间隔,根据时间间隔就可以统计网络的延迟。1.2端口扫描需求 在因特网广泛应用的今天,网络安全也引起越来越多网络用户的关注。像黑客对端口的入侵,往电脑中植入木马病毒,删除或修改用户文件,其带来的后果不言而喻。端口扫描能够检测远程或本地主机安全性

10、弱点,通过扫描你可一不留痕迹的发现远程服务器的各种tcp端口的分配及提供的服务和它们的软件版本!这就能让我们间接的或直观的了解到远程主机所存在的安全问题。一般来说,端口扫描程序具备以下功能:发现一个主机或网络的能力;一旦发现一台主机,有发现什么服务正运行在这台主机上的能力;通过测试这些服务,发现漏洞的能力。好的端口扫描程序能对它得到的数据进行分析,帮助我们查找目标主机的漏洞。1.3端口侦听需求 端口侦听程序在个人应用中比较常见,在黑客攻击和防护中经常要用到的。一个端口就是一个潜在的通信通道,也就是一个入侵通道。通过对指定端口进行侦听,可以得到许多有用的信息,能检测出试图访问此端口的连接,从而发

11、现系统的安全漏洞。1.4网络状态检测需求 当用户端出现网络故障时,用户通常会依据一定的步骤检测网络故障原因,以判断看是自己计算机端故障,还是外界线路或其他故障。网络检测能检测出简单的网络参数,如是否连接,网络连接的相关配置是否正确等等,从而帮助用户更快排除网络故障。1.5域名查找需求对于域名查找,它主要是帮助用户得到某一特别域名的ip地址。对某一域名,如,要想得到它所对应的ip地址,许多方法都可以实现。如windows自带的ping命令,它主要是帮助用户得到某一特别域名的ip地址。除此之外,域名解析服务器也能将域名解析成ip,同时还能反向解析,能将ip地址解析成域名。

12、 2 开发环境介绍2.1系统环境2.1.1系统开发平台 microsoft windows xp professional service pack 22.1.2 系统开发工具microsoft visual basic 6.0 中文版2.2 visual basic 6.0开发环境简介及功能特点 visual basic是microsoft公司推出的一种windows应用程序开发工具。是当今世界上使用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。无论是开发功能强大、性能可靠的商务软件,还是编写能处理实际问题的实用小程序,vb都是最快速、最简便的方法。首先,vb采用面向对象的

13、程序设计方法,它将程序和数据封闭起来视为一个对象,每个对象都是可视化。在设计时只需用现有工具根据界面设计的要求,直接在屏幕上“画”出窗口、菜单、命令按钮等不同类型的对象,并为每个对象设置属性。在编程过程中,仅针对对象要完成的事件过程的代码,因而程序设计的效率可提高许多。其次,在vb中,事件驱动也是非常适合图形用户界面的编程方式。传统的面向过程的应用程序是按事先设计的流程运行的。但在图形用户界面的应用程序中,用户的动作即事件掌握着程序的运行流向。如界界面中一个按钮,当单击该按钮,执行command_click()事件过程。每个事件都能驱动一段程序的运行,在编程时,只要编写响应用户动作的代码,各个

14、动作之间不一定有联系。这样的应用程序代码较短,使得程序既易于编写又易于维护。再次,vb所提供的易学易用的应用程序集成开发环境,它使用结构化的程序设计语言,也让开发者更加快捷方便地开发出系统程序。在vb集成开发环境中,用户可设计界面、编写代码和调试程序,把应用程序编译成可执行文件,直至把应用程序制作成安装盘,以便于能够在脱离vb系统的windows环境中运行。vb具有丰富的数据类型众多的内部函数,模块化、结构化的程序设计机制,结构清晰,简单易学。最后,除了以上很多开发功具都具备的功能特别外,vb还有着强大的数据库操纵功能,vb中利用数据控件可以访问多种数据系统,如microsoft access

15、、microsoft foxpro和paradox等,也可访问microsoft excel、lotus1-2-3等多种电子表格。它采用的ado(active database object)技术,既包括了现有的odbc,而且占用内存少,访问速度快,同时提供的ado控件,不但可以用最少的代码创建数据库应用程序,也可以取代data和rdo控件。支持多种数据库系统的访问。还有active技术和它的网络功能也使vb的开发范围更广。active技术让开发者用vb能够开发集声音图像、动画、字处理、电子表格和web等对象于一体的应用程序。网络功能则可以使web页面设计者动态地创建和编辑页面,使用户在vb中

16、开发多功能的网络应用软件。3 系统相关基本原理3.1端口简介随着计算机网络技术的发展,原来物理上的接口(如键盘、鼠标、网卡、显示卡等输入/输出接口)已不能满足网络通信的要求,tcp/ip协议作为网络通信的标准协议就解决了这个通信难题。tcp/ip协议集成到操作系统的内核中,这就相当于在操作系统中引入了一种新的输入/输出接口技术,因为在tcp/ip协议中引入了一种称之为“socket(套接字)”应用程序接口。有了这样一种接口技术,一台计算机就可以通过软件的方式与任何一台具有socket接口的计算机进行通信。端口在计算机编程上也就是“socket接口”。有了这些端口后,这些端口又是如何工作呢?例如

17、一台服务器为什么可以同时是web服务器,也可以是ftp服务器,还可以是邮件服务器等等呢?其中一个很重要的原因是各种服务采用不同的端口分别提供不同的服务,比如:通常tcp/ip协议规定web采用80号端口,ftp采用21号端口等,而邮件服务器是采用25号端口。这样,通过不同端口,计算机就可以与外界进行互不干扰的通信。据专家们分析,服务器端口数最大可以有65535个,但是实际上常用的端口才几十个,由此可以看出未定义的端口相当多。3.2端口分类端口的分类根据其参考对象不同有不同划分方法,如果从端口的性质来分,通常可以分为以下三类:(1)公认端口:这类端口也常称之为“常用端口”。这类端口的端口号从0到

18、1024,它们紧密绑定于一些特定的服务。通常这些端口的通信明确表明了某种服务的协议,这种端口是不可再重新定义它的作用对象。例如:80端口实际上总是http通信所使用的,而23号端口则是telnet服务专用的。这些端口通常不会像木马这样的黑客程序利用。为了使大家对这些常用端口多一些认识,在本章后面将详细把这些端口所对面应的服务进行列表,供各位理解和参考。(2)注册端口: 注册端口端口号从1025到49151。它们松散地绑定于一些服务。也是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的。这些端口多数没有明确的定义服务对象,不同程序可根据实际需要自己定义,如后面要介绍的远程控制软件和木马程

19、序中都会有这些端口的定义的。记住这些常见的程序端口在木马程序的防护和查杀上是非常有必要的。常见木马所使用的端口在后面将有详细的列表。(3)动态或私有端口:端口号从49152到65535。理论上,不应把常用服务分配在这些端口上。实际上,有些较为特殊的程序,特别是一些木马程序就非常喜欢用这些端口,因为这些端口常常不被引起注意,容易隐蔽。如果根据所提供的服务方式的不同,端口又可分为tcp协议端口和udp协议端口两种。因为计算机之间相互通信一般采用这两种通信协议。前面所介绍的“连接方式”是一种直接与接收方进行的连接,发送信息以后,可以确认信息是否到达,这种方式大多采用tcp协议;另一种是不是直接与接收

20、方进行连接,只管把信息放在网上发出去,而不管信息是否到达,也就是前面所介绍的“无连接方式”。这种方式大多采用udp协议,ip协议也是一种无连接方式。对应使用以上这两种通信协议的服务所提供的端口,也就分为“tcp协议端口”和“udp协议端口”。tcp传输控制协议,提供的是面向连接、可靠的字节流服务。tcp的可靠保证,是它的三次握手机制,先是客户端往服务器某端口发送请求连接的syn包,服务器的该端口如果允许连接,会给客户端发一个回包ack,客户端收到服务器的ack包后再给服务器端发一个ack包,tcp连接正式建立。这一机制保证校验了数据,保证了他的可靠性。当客户和服务器彼此交换数据前,必须先在双方

21、之间建立一个tcp连接,之后才能传输数据。tcp提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。图3-1 tcp三次握手使用tcp协议的常见端口主要有以下几种:(1)ftp:定义了文件传输协议,使用21端口。常说某某计算机开了ftp服务便是启动了文件传输服务。下载文件,上传主页,都要用到ftp服务。(2)telnet:它是一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上,通过这种端口可以提供一种基于dos模式下的通信服务。如以前的bbs是纯字符界面的,支持bbs的服务器将23端口打开,对外提供服务。(3)smtp:定义了简单邮件传送协议,现在很多

22、邮件服务器都用的是这个协议,用于发送邮件。如常见的免费邮件服务中用的就是这个邮件服务端口,所以在电子邮件设置中常看到有这么smtp端口设置这个栏,服务器开放的是25号端口。(4)pop3:它是和smtp对应,pop3用于接收邮件。通常情况下,pop3协议所用的是110端口。也是说,只要你有相应的使用pop3协议的程序(例如foxmail或outlook),就可以不以web方式登陆进邮箱界面,直接用邮件程序就可以收到邮件(如是163邮箱就没有必要先进入网易网站,再进入自己的邮箱来收信)。 与tcp相比,udp协议直接利用ip协议进行udp数据报的传输,因此udp提供的是无连接、不可靠的数据报投递

23、服务。它常用于数据量较少的数据传输,包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用udp协议。例如:域名系统中域名地址/ip地址的映射请求和应答、ping等应用。使用udp协议的好处是在少量数据的传输时,使用udp协议传输信息流,可以减少tcp连接的过程,提高工作效率。使用udp协议常见的有:(1)http:这是大家用得最多的协议,它就是常说的超文本传输协议。上网浏览网页时,就得在提供网页资源的计算机上打开80号端口以提供服务。常说www服务、web服务器用的就是这个端口。(2) dns:用于域名解析服务,这种服务在windows nt系统中用得最多的。因特网上的每一台计

24、算机都有一个网络地址与之对应,这个地址是常说的ip地址,它以纯数字+“.”的形式表示。然而这却不便记忆,于是出现了域名,访问计算机的时候只需要知道域名,域名和ip地址之间的变换由dns服务器来完成。dns用的是53号端口。(3) snmp:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。 另外代理服务器常用以下端口:(1)http协议代理服务器常用端口号:80/8080/3128/8081/9080(2)socks代理协议服务器常用端口号:1080(3)ftp协议代理服务器常用端口号:21(4)telnet协议代理服务器常用端口:233.

25、3端口侦听原理以太网协议的工作方式是将要发送的数据包发往连接在一起的所有计算机。在包头中包括有应该接收数据包的计算机的正确地址,因为只有与数据包中目标地址一致的那台计算机才能接收到信息包。但是当计算机工作在侦听模式下,不管数据包中的目标物理地址是什么,计算机都将可以接收到。当同一网络中的两台计算机通信的时候,源计算机将写有目的计算机地址的数据包直接发向目的计算机,或者当网络中的一台计算机同外界的计算机通信时,源计算机将写有目的计算机ip地址的数据包发向网关。但这种数据包并不能在协议栈的高层直接发送出去,要发送的数据包必须从tcp/ip协议的ip协议层交给网络接口-数据链路层。网络接口不会识别i

26、p地址的,在网络接口中,由ip协议层来的带有ip地址的数据包又增加了一部分以太网的帧头信息。在帧头中,有两个域分别为只有网络接口才能识别的源计算机和目的计算机的物理地址,这是一个48位的地址,这个48位的地址是与ip地址相对应的。换句话说,一个ip地址也会对应一个物理地址。对于作为网关的计算机,由于它连接了多个网络,它也就同时具备有很多个ip地址,在每个网络中它都有一个。而发向网络外的帧中继携带的是网关的物理地址。以太网中填写了物理地址的帧从网络端口中(或者从网关端口中)发送出去,传送到物理的线路上。如果局域网是由一条粗同轴电缆或细同轴电缆连接成的,那么数字信号在电缆上传输信号就能够到达线路上

27、的每一台计算机。再当使用集线器的时候,发送出去的信号到达集线器,由集线器再发向连接在集线器上的每一条线路。这样在物理线路上传输的数字信号也就能到达连接在集线器上的每个计算机了。当数字信号到达一台计算机的网络接口时,正常状态下网络接口对读入数据帧进行检查,如数据帧中携带的物理地址是自己的或者物理地址是广播地址,那么就会将数据帧交给ip协议层软件。对于每个到达网络接口的数据帧都要进行这个过程的。但是当计算机工作在侦听模式下,所有的数据帧都将被交给上层协议软件处理。 当连接在同一条电缆或集线器上的计算机被逻辑地分为几个子网的时候,那么要是有一台计算机处于侦听模式,它可以接收到发向与自己不在同一个子网

28、(使用了不同的掩码、ip地址和网关)的计算机的数据包,在同一个物理信道上传输的所有信息都可以被接收到。在unix系统上,当拥有超级权限的用户要想使自己所控制的计算机进入侦听模式,只需要向interface(网络接口)发送i/o控制命令,就可以使计算机设置成侦听模式了。而在windows 9x的系统中则不论用户是否有权限都将可以通过直接运行侦听工具就可以实现。在端口处于侦听时,常常要保存大量的信息(也包含很多的垃圾信息),并将对收集的信息进行大量的整理,这样就会使正在侦听的计算机对其他用户的请求响应变的很慢。同时侦听程序在运行的时候需要消耗大量的处理器时间,如果在这时就详细的分析包中的内容,许多

29、包就会来不及接收而被漏走。所以侦听程序很多时候就会将侦听得到的包存放在文件中等待以后分析。分析侦听到的数据包是很头疼的事情,因为网络中的数据包都非常之复杂。两台计算机之间连续发送和接收数据包,在侦听到的结果中必然会加一些别的计算机交互的数据包。侦听程序将同一tcp协议会话的包整理到一起就相当不容易,如果还期望将用户详细信息整理出来就需要根据协议对包进行大量的分析。现在网络中所使用的协议都是较早前设计的,许多协议的实现都是基于一种非常友好的,通信的双方充分信任的基础。在通常的网络环境之下,用户的信息包括口令都是以明文的方式在网上传输的,因此进行端口侦听从而获得用户信息并不是一件难点事情,只要掌握

30、有初步的tcp/ip协议知识就可以轻松的侦听到想要的信息的。3.4端口扫描原理“端口扫描”通常指用同一信息对目标计算机的所有所需扫描的端口进行发送,然后根据返回端口状态来分析目标计算机的端口是否打开、是否可用。“端口扫描”行为的一个重要特征是:在短时期内有很多来自相同的信源地址传向不同的目的地端口的包。对于用端口扫描进行攻击的人来说,攻击者总是可以做到在获得扫描结果的同时,使自己很难被发现或者说很难被逆向跟踪。为了隐藏攻击,攻击者可以慢慢地进行扫描。除非目标系统通常闲着(这样对一个没有listen端口的数据包都会引起管理员的注意),有很大时间间隔的端口扫描是很难被识别的。隐藏源地址的方法是发送

31、大量的欺骗性的端口扫描包(1000个),其中只有一个是从真正的源地址来的。这样,即使全部包(1000个)都被察觉,被记录下来,也没有人知道哪个是真正的信源地址。能发现的仅仅是“曾经被扫描过”。也正因为这样那些黑客们才乐此不彼地继续大量使用这种端口扫描技术来达到他们获取目标计算机信息、并进行恶意攻击。端口扫描可以为提供三个用途:(1)识别目标系统上正在运行的tcp协议和udp协议服务。(2)识别目标系统的操作系统类型(windows 9x, windows nt,或unix,等)。(3)识别某个应用程序或某个特定服务的版本号。3.5 tcp/ip的通讯协议tcp/ip协议是一组包括tcp协议和i

32、p协议,udp(user datagram protocol)协议、icmp(internet control message protocol)协议和其他一些协议的协议组。tcp/ip协议并不完全符合osi的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而tcp/ip通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:应用层:应用程序间沟通的层,如简单电子邮件传输(smt

33、p)、文件传输协议(ftp)、网络远程访问协议(telnet)等。传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(tcp)、用户数据报协议(udp)等,tcp和udp给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(ip)。网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如ethernet、serial line等)来传送数据。3.6 winsock介绍随着人个计算机的日益普及,windows操作系统应用广泛,这就

34、需要在windows环境下进行网络编程,为此,微软公司以berkeley sockets规范为规范,定义了windows sockets规范,简称winsock规范。winsock是指windows sockets,是网络编程的接口,而不是协议。它是一个为microsoft windows定义的网络编程规范。他源于unix中的berkely套接字(socket),使用windows sockets编制的应用程序,定义了一套适用于microsoft windows下的网络编程接口,以库函数的方式实现。它不仅包含了人们所熟悉的berkeley socket风格的库函数;也包含了一组针对window

35、s操作系统的扩展库函数,使编程者能充分地利用windows操作系统的消息驱动机制进行编程。此外,在一个特定版本号windows操作系统的基础上,windows sockets也定义了一个二进制接口(abi),以此来保证,只要任何网络软件供应商的实现是符合windows sockets规范的,使用windows sockets api的应用程序就能够很好地在该实现上工作。可以同其他基于windows sockets api编制的应用程序通过网络进行通讯,并且在编制基于winsock的应用程序时,不需要关心网络通信协议本身是如何工作的。winsock不仅继承了berkely sockets的功能,

36、而且还针对windows作了扩展,winsock还支持多种网络通讯协议,如:常见的tcp/ip(transmission control protocol/internet protocol)协议、xns(xerox network system),digital equipment公司的decnet协议,novell公司的ipx/spx(internet packet exchange/sequenced packed exchange)等。目前winsock规范主要针对tcp/ip,但只要提供了实现winsock的动态连接库,任何网络通讯协议都可以同winsock兼容。我们可以使用wins

37、ock在internet上传输数据和交换信息而不必关心网络连接的细节,因而很受网络编程人员的欢迎。网络应用程序调用winsock api,实现相互之间的通信,winsock又利用下层的网络通信协议和操作系统功能实现实际的通信。图3-2说明了它们的关系。windowswindows应用程序internetwinsocktcp/ip协议栈winsocktcp/ip协议栈应用程序应用层协议图3-2 网络应用进程利用winsock进行通信vb6.0中提供了winsock控件,用于支持网络中两以上计算机之间进行通信,winsock控件中提供了多样化的属性和方法来实现网络通信。通过设置winsock控件的

38、属性及调用控件方法就能够实现tcp或udp方式的网络通信,因此,使用winsock编写通信程序过程,实际上就是设置winsock控件的属性和调用控件方法的过程,利用这个控件,可轻松编写出tcp/ip、客户/服务器程序。4系统功能总体设计4.1系统功能描述网络实用工具包系统包括五个功能模块:ping命令、端口侦听、网络状态检测、端口扫描和域名查找。网络实用工具包系统网络状态检测域名查找端口扫描端口侦听ping命令图4-1系统功能图4.2 ping命令模块 该模块主要实现操作系统中的ping命令,能够ping本机ip、局域网内ip和远程ip。ping命令用于验证与远程计算机的连接,该命令只有在安装

39、了 tcp/ip 协议后才可以使用。ping命令的主要作用是通过发送数据包并接收应答信息来检测两台计算机之间的网络是否连通。当网络出现故障的时候,可以用这个命令来预测故障和确定故障地点。ping命令成功只是说明当前主机与目的主机之间存在一条连通的路径,并不能得到网络间信息通信数据和流量。4.3端口侦听端口侦听模块对目标计算机的端口进行监视,监听目标计算机的某个端口,列出所有试图访问此端口的连接。通过侦听还可以捕获别人有用的信息,用户可以用该功能来保护自己的计算机,在自己计算机的选定端口进行监视,这样可以发现并拦截一些黑客的攻击。也可以侦听别人计算机的指定端口,看是否空闲,以便入侵。4.4网络状

40、态检测 网络状态检测模块主要实现对本机连接状态的查探,得到连接的有关情况,如是否成功连接、上网媒介、网络连接配置正确与否等等。4.5端口扫描端口扫描模块是对于给定的起始端口和终止端口,搜索本机在此行端口敬意内所有打开的商品号。通过连接到目标系统的tcp协议或udp协议端口,来确定什么服务正在运行,端口开放的个数及哪些端口在开放。4.6域名查找模块 该模块主要实现通过域名查找到ip,同时也通过ip地址反向查找域名。域名查找ip是通过操作系统自带的ping命令来得到,在程序中只需简单调用该命令,即可得到你所要查找域名的ip地址。域名反向查找ip功能的实现是通过dns,domain name sys

41、tem或者domain name service(域名系统或者域名服务)来实现。域名系统为internet上的主机分配域名地址和ip地址。用户使用域名地址,该系统就会自动把域名地址转为ip地址。域名服务是运行域名系统的internet工具。执行域名服务的服务器称之为dns服务器,通过dns服务器来应答域名服务的查询。5 系统功能详细设计系统共实现五个功能,各个功能模块相互独立。大部分操作都是调用相关windows api实现的。对于windows提供相关命令的系统采用软件内调用windows命令追踪其返回的方式提供相应功能。5.1主界面部分:主界面比较简单,大都是通过各种控件来组成,有菜单栏、

42、左边的各功能的按钮项和下边的状态栏。点击各按钮即可链接到到各个功能的程序界面。在状态栏设置三项,分别显示为当前时间、本机ip和本机名。显示时间为系统自带的将第一栏的样式设为sbttime即可。本机ip和本机名是加入winsock控件,因只用得到本机ip地址和本机名,其本地端口和远程端口属性为默认的0。winsock协议属性设为0-scttcpprotocol.要在状态栏中显示本机ip和本机名,只需调用winsock1属性localip和localhostname就可得到。其实现代码如下:statusbar1.panels(2) = 本机ip: + winsock1.localip /*状态栏第

43、一显示本机ip地址statusbar1.panels(3) = 本机名: + winsock1.localhostname /*状态栏面板第三格显示本机名 图5-1 主界面运行结果5.2 ping命令的实现该模块其实就是windows自带的命令的简化版,只是对ip地址进行ping用来查看网络上另一个主机系统的网络连接是否正常。调用函数vbicmpsendecho向ip地址栏中主机系统发送icmp报文,如果指定系统得到了报文,它将把报文一模一样地传回发送。ping命令只使用众多icmp报文中的两种:请求回送icmp_echo)和请求回应 (icmp_echoreply)。输入要ping的地址,点

44、击ping按钮,调用vbicmpsendecho函数,发送icmp数据包,获取回音,如果成功获取回音,则获取ip,否则连接超时,进行错误处理,提示信息为rtt=0ms,averagespeed=0,在下边的文本框中会显示ping的结果信息。其中包括被测试系统主机相应ip地址、返回给当前主机的icmp报文数据包大小、ttl(生存时间)、往返时间rtt(单位是毫秒,即千分之一秒)和数据报信息每次返回所用时间。该模块还能调节ping命令的发送次数,又能调节数据包的大小。发送次数最大可设为10次,数据包最大可调至100。在该模块中所使用到的api: icmpcreatefile,icmpcloseha

45、ndle,icmpsendecho,wsagetlasterror,wsastartup,wsacleanup,gethostnamet和rtlmovememory。成功连接显示提示信息显示速度等信息获取ip地址获取返回代码发送报头文件判断状态开始图5-2-1 ping命令模块流程图图5-2-2ping命令开始界面图5-2-3运行结果显示界面:5.3端口扫描该模块中扫描端口默认的是从1号端口开始扫描,输入终止扫描端口号,点开始,先确定是本地端口还是远程端口,通过调用scanner函数,获得文本框中所需扫描的端口号,每次从1号端口开始扫描,用for循环实现对所有端口进行扫描。在扫描的过程中,当前

46、端口后的标签显示当前正扫描的端口号,当扫描结束时,该标签提示扫描完毕,下边文本框中显示扫描结果。其中包括共多少个端口扫描成功,哪些端口处于开放状态。代码实现,先定义端口变量,还要定义ping的参数、tracert 参数和wsock32 常量。点击开始钮触发click()事件,设置起始和终止端口标签属性,获取给定的起始端口和终止端口号,调用scanner(txtbeginport, txtendport)方法,该方法为该模块的核心代码,初始化端口总数和端口开放数为0,再设置执行条件,当当前端口号为终止端口号时,退出方法开始执行时。再将当前端口号为起始端口号,调用scanport方法,如果返回为真

47、,则说当前扫描的端口为开放,提示该端口号是开放的,同时端口总数加1,若返回为假,只将端口总数加1。当所有端口扫描完毕,再将结果信息添加到状态文本框中。还有就是将窗口面板上的各个控件属性进行更改,以便用户再次执行端口扫描。图5-3端口扫描运行结果具体代码如下:sub scanner(begin as long, ending as long)/*初始化端口总数和端口开放数为0 totalports = 0portopen = 0/*设置执行条件,当当前端口号为终止端口号时,退出方法 do until onport = txtendportpause 0.05 if portdone = 1 th

48、en lblcurrent = lblcurrent - 1: exit subdoeventslblcurrent = onport /*开始执行时,当前端口号为起始端口号,if localhost = 1 then if scanport(onport, winsock1) = true then/*当scanport返回真,表示该端口是开放 totalports = totalports + 1 portopen = portopen + 1 if txtstatus = then txtstatus = 端口 & onport & 是开放的.: goto thispart txtsta

49、tus = txtstatus & vbcrlf & 端口 & onport & 是开放的. txtstatus.selstart = len(txtstatus) end ifelseif len(txtip.text) 1 then host = txtip.text vbgethostbyname winsock1.connect ip, onport pause 0.2 winsock1.closeend ifthispart:onport = onport + 1loop/*scanner方法执行完后,设置文本框中的显示结果lblcurrent = 扫描完毕txtstatus = t

50、xtstatus & vbcrlf & onport - 1 & 个端口扫描成功。 & vbcrlf & portopen & 个端口开放。txtstatus.selstart = len(txtstatus)cmdstop.enabled = falsetxtbeginport.enabled = truetxtendport.enabled = truecmdstart.enabled = truecmdstart.setfocusend sub5.4端口侦听输入要侦听的端口号,对其进行监听,监听过程中列出所有试图访问此端口的连接。其实现过程,先判断所输的端口是否正确,然后确定是tcp协议

51、还是udp协议,默认的是tcp协议。接下来获取文本框中的端口号,调用winsock控件的listen函数,根据返回的端口状态信息,来判断该端口是否开放和连接,如果开放,则在下边的状态文本框中提示该端口已开放,否则显示错误提示和错误描述。 判断协议程序:if opttcp = true then ws1.protocol = scktcpprotocolend if /*如果单选按钮opttcp被选中,将winsock协议属性设为scktcpprotocolif optudp = true then ws1.protocol = sckudpprotocolend if /*如果单选按钮optu

52、dp被选中,将winsock协议属性设为sckudpprotocol图5-4端口侦听运行结果5.5 网络连接状态检测运行该模块时,在窗体的load()事件中添加检测网络连接状态的代码。先在模块中申明所需变量和所用的api函数,在主窗体下直接通过if语句中参数来判断连接的相关信息,其相关代码如下:if (er and internet_connection_modem) = internet_connection_modem then smsg = smsg & 连接使用调制解调节器. & vbcrlf end if if (er and internet_connection_lan) = i

53、nternet_connection_lan then smsg = smsg & 连接使用 lan. & vbcrlf end if if (er and internet_connection_proxy) = internet_connection_proxy then smsg = smsg & 通过代理连接。 & vbcrlf end if if(er andinternet_connection_offline)= internet_connection_offline then smsg = smsg & 网络未连接. & vbcrlf end if if(erandintern

54、et_connection_configured)=internet_connection_configurd then smsg = smsg & 网络连接已配置好。 & vbcrlf else smsg = smsg & 网络连接未配置. & vbcrlf end if if (er and internet_ras_installed) = internet_ras_installed then smsg = smsg & 系统安装了ras. & vbcrlf end if以上代码中法中er和各网络状态参数相与,得出连接状态的相关信息,并将运行结果信息smsg添加到状态文本框中。图5-5

55、网络状态检测运行界面5.6域名查找在域名文本框中输入所要转换的域名,点击转换,将会在以下面文本框中得到对应的ip地址。从域名到ip地址的查找,实现起来比较简单,主要是调用操作系统下自带的ping命令,对域名文本框中的域名进行解析查找,点击转换按钮,ip地址栏中显示域名所对应的ip地址。 图5-6域名查找运行界面6 系统测试6.1测试方法系统测试的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终得到一个高质量的软件系统。测试方法通常包括以下两种,一种方法称为白盒测试,另一种称为黑盒测试。这两种测试途径各有优缺点,互相补充,缺一不可。对于软件测试而言,墨盒测试法把程序看作一个黑盒子,完全不考虑

56、程序的内部结构和处理过程。也就是说,墨盒测试是在程序接口进行的测试,神经质只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息程序运行过程中能否保持外部信息的完整性。因此,黑盒测试又称为功能测试。白盒测试法与墨盒测试法相反,它的前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。白盒测试又称为结构测试。一般来说,程序软件测试大都采用黑盒测试。6.2系统测试及结果本系统采用黑盒测试,因为功能比较简单,且各个模块相互独立性比较强,墨盒测试就能查找出软件问题。首先对各个模块分别进行测试,在系统的工程属性将启动对象设为所要测的子模块。测试数据的选取在测试过程中也很重要,一般先输入正确的测试数据,看是否能得出正确结构。同时还得考虑错误的数据和边界值。在ping模块中,输入与本机相连通的ip地址,则会返回数据包大小、ttl、往返时间rtt和数据报信息每次返回所用时间。如果所输入的ip地址与本机不是连通的话,ttl、rtt和数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论