实验五网络安全软件开发:网络扫描器(完整代码)

实验五网络安全软件开发:网络扫描器(完整代码)

ID:25730311

大小:90.92 KB

页数:20页

时间:2018-11-22

实验五网络安全软件开发:网络扫描器(完整代码)_第1页
实验五网络安全软件开发:网络扫描器(完整代码)_第2页
实验五网络安全软件开发:网络扫描器(完整代码)_第3页
实验五网络安全软件开发:网络扫描器(完整代码)_第4页
实验五网络安全软件开发:网络扫描器(完整代码)_第5页
资源描述:

《实验五网络安全软件开发:网络扫描器(完整代码)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、网络安全原理与应用实验报告实验名称:网络安全软件开发:网络扫描器姓名:学号:班级:指导老师:实验五网络安全软件开发:网络扫描器一、实验目的1.熟悉网络扫描器实现的关键技术2.熟练运用C#,java开发网络应用程序3.熟悉网络协议字段含义及结构二、实验内容1.网络扫描器实现基本的地址扫描,端口扫描,TCP/UDP扫描,实现多线程扫描。2.图形化界面的网络扫描器软件3.提交源代码、可执行程序及代码注释文件及执行结果截图。三、实验分析多线程:电脑上有个端口。如果只启动一个线程的话个端口需要的时间可以用小时计算。解决这个问题需要用到多线程原理。多线程实现可通过继承

2、Thread类或者实现Runnable接口来达到。主机端口扫描:与目标主机创建TCP连接,如果成功则说明端口监听中,同时对正在监听的端口做识别操作!默认按照常用端口服务给出提示!例如21,则提示ftp服务。UDP扫描是向目标主机端口发送固定字符,读取目标主机回复内容!TCP扫描原理:利用java.net.Socket类建立socket连接,如果无法与指定的IP和端口建立连接,将会抛出IOException。我们用try-catch对这个IOException异常进行捕获,以判断是否成功与指定的IP端口建立连接。如果成功建立了连接,说明指定IP的指定端口已经

3、开放;如果程序抛出了一个IOException异常被我们捕获,则说明指定的IP没有开放指定的端口。扫描指定端口段则是利用循环不断与服务器的指定端口进行连接,供我们判断是否开放。UDP扫描原理:这种方法使用的是UDP协议。由于这个协议很简单,所以扫描变得相对比较困难。这是由于打开的端口对扫描探测并不发送一个确认,关闭的端口也并不需要发送一个错误数据包。幸运的是,许多主机在你向一个未打开的UDP端口发送一个数据包时,会返回一个ICMP_PORT_UNREACH错误。这样你就能发现哪个端口是关闭的。UDP和ICMP错误都不保证能到达,因此这种扫描器必须还要实现当

4、一个包看上去是丢失的时候还能重新传输。这种扫描方法是很慢的,因为RFC对ICMP错误消息的产生速率做了规定。同样,这种扫描方法需要具有root权限。利用java.net.DatagramSocket类给指导IP发送DatagramPacket数据包,如果捕获到java.net.PortUnreachableException异常,说明对方主机返回了ICMP_PORT_UNREACH的错误,说明端口关闭,否则如果在指定等待时间内没有得到回复,则捕获到java.net.SocketTimeoutException连接超时异常,说明端口是开放的。判断IP地址和端

5、口合法性:在得到端口和建立socket之前一定要判断IP地址和端口的合法性,因为端口的范围是在1~65535,如果我们去建立范围外端口的连接就是没必要的,而且是不可行的。IP地址表示成XX.XX.XX.XX格式,XX范围在0~255之间,在这之外是不合法的。图形化界面(GUI)设计:主要用到了java.awt提供的和图形界面相关的类。为了使界面更美观使用了swing组件。socket中的close方法:不需要一个socket的时候应关闭它,因为socket是一种有限的系统资源。关闭socket将释放有关的资源,并允许绑定在此socket上的端口被重新使用。

6、Socket被关闭之后就不能再向它收发数据UDP缺陷说明:开放的UDP端口并不需要送回ACK包,而关闭的端口也不要求送回错误包(而本实验基于的原理就是那些主机在关闭的UDP端口会回送ICMPPortUnreachable错误,因此有很大的几率误判,由于时间原因和自身知识的局限不能想到更好的方法),所以利用UDP包进行扫描非常困难。UDP包和ICMP包都是不可靠的,速度慢(差错报文产生的速度有限制),并且需要root权限才能读取ICMP消息,因此使用的局限性好大。四、实验截图1.初始界面2.对站点10.199.157.223进行UDP扫描:2.对站点10.1

7、99.157.223进行TCP扫描:扫描过程:扫描结果:五、实验代码Scanner.java/*基于多线程端口扫描程序源代码*/importjava.awt.Color;//类的调用importjava.awt.Container;importjava.awt.Label;importjava.awt.TextArea;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowAdapter;importjava.awt.e

8、vent.WindowEvent;importjava.io.IO

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

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

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