首页 端口扫描器的设计与实现

端口扫描器的设计与实现

举报
开通vip

端口扫描器的设计与实现网络与信息安全•课程设计 计算机科学与工程学院 课程设计报告 题目全称: 课 程: 学生学号: 班号: 姓名: 指导老师: 职称: 指导老师评语: 签字: 课程设计成绩: 设计过程表现 设计报告质量 总分 前言 网络中的每一台计算机如同一座城堡,在这些城堡中,有的对外完全开放,有的却是紧锁城门。入侵者们是如何找到,并打开它们的城门的呢?这些城门究竟通向城堡的何处呢?在网络技术中,把这些城堡的“城门”称之为计算机的“端口”。端口扫描是入侵者搜集信息的几种常用手法之一,也正是这一过程最容易使入侵者暴露自己的身份和意图。...

端口扫描器的设计与实现
网络与信息安全•课程设计 计算机科学与工程学院 课程设计报告 题目全称: 课 程: 学生学号: 班号: 姓名: 指导老师: 职称: 指导老师评语: 签字: 课程设计成绩: 设计过程表现 设计报告质量 总分 前言 网络中的每一台计算机如同一座城堡,在这些城堡中,有的对外完全开放,有的却是紧锁城门。入侵者们是如何找到,并打开它们的城门的呢?这些城门究竟通向城堡的何处呢?在网络技术中,把这些城堡的“城门”称之为计算机的“端口”。端口扫描是入侵者搜集信息的几种常用手法之一,也正是这一过程最容易使入侵者暴露自己的身份和意图。一般来说,扫描端口有如下目的: ·判断目标主机上开放了哪些服务; ·判断目标主机的操作系统; 如果入侵者掌握了目标主机开放了哪些服务,运行何种操作系统,他们就能够使用相应的手段实现入侵,本课程设计将会通过用JAVA语言实现一个小的端口扫描软件,详细描述端口扫描的原理,分析端口扫描所涉及的问题,以便更加清楚地了解入侵者如何扫描目标主机的端口,同时掌握如何确保本机的安全性,为将来设计更为安全的系统打下牢固基础。 目录 TOC \o "1-2" \h \z \u 一、网络基础知识 3 1、端口的基本概念 3 2、端口的分类 3 二、端口扫描的基本原理 4 1、基本原理 4 2、基于JAVA语言实现的核心代码 4 三、端口扫描器视图 5 1、工作窗口 5 2、异常窗口 5 3、窗口核心代码 5 四、多线程快速扫描 6 1、多线程机制 6 2、多线程核心代码 7 五、用户使用方法 8 1、页面说明 8 2、按主机名扫描 8 3、按IP地址扫描 8 六、常用端口 8 七、异常检测 9 结语 12 一、网络基础知识 1、端口的基本概念 “端口”在计算机网络领域中是个非常重要的概念。它是专门为计算机通信而设计的,它不是硬件,不同于计算机中的“插槽”,可以说是个“软插槽”。如果有需要的话,一台计算机中可以有上万个端口。 端口是由计算机的通信 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 TCP/IP协议定义的。其中规定,用IP地址和端口作为套接字,它代表TCP连接的一个连接端,一般称为Socket。具体来说,就是用IP端口来定位一台主机中的进程。可以做这样的比喻,端口相当于两台计算机进程间的大门,可以随便定义,其目的只是为了让两台计算机能够找到对方的进程。计算机就像一座大楼,这个大楼有好多入口(端口),进到不同的入口中就可以找到不同的公司(进程)。如果要和远程主机A的程序通信,那么只要把数据发向A端口就可以实现通信了。 可见,端口与进程是一一对应的,如果某个进程正在等待连接,称之为该进程正在监听,那么就会出现与它相对应的端口。由此可见,通过扫描端口,便可以判断出目标计算机有哪些通信进程正在等待连接。 2、端口的分类 端口是一个16 bit的地址,用端口号进行标识不同作用的端口,参见表2-2和表2-3。端口一般分为两类。 ■熟知端口号:范围从0到1023,这些端口号一般固定分配给一些服务。比如21端口分配给FTP服务,25端口分配给SMTP服务,80端口分配给HTTP服务,135端口分配给RPC服务等等 ■动态端口号:动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。比如8080端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。 二、端口扫描的基本原理 1、基本原理 端口扫描的原理其实非常简单,只是简单的利用JAVA提供库函数Socket进行调用,与每一个感兴趣的目标计算机的端口进行连接。如果对方端口处于监听状态,那么连接就能成功。否则,这个端口不能用,既没有提供服务。这个技术的一个最大的优点是,不需要任何权限,系统中的任何用户都有权利使用这个调用。 引入多线程机制,利用多线程扫描的好处就是速度快,如果对每个目标端口以线性的方式使用单独的连接调用,那么将会花费相当长的时间。多线程同时打开多个套接字,从而加速扫描。在本设计中用户可以自定义线程的个数。此处用户还可以自定义扫描方式。 2、基于JAVA语言实现的核心代码 //在多线程的控制下,利用for循环对端口逐一扫描 for (i =XXXXXX; i 255||ip2<0 || ip2>255||ip3<0 || ip3>255||ipstart<0 || ipstart>255){ ThreadScan.DLGINFO.setText("ip地址为0-255的整数! "); ThreadScan.DLGError.setVisible(true); ThreadScan.Submit.setEnabled(true); //设置开始扫描按钮可用。 return; } //判断主机名称的有效性 try{ TCPThread.hostAddress=InetAddress.getByName(ThreadScan.hostname.getText()); }catch(UnknownHostException e){ ThreadScan.DLGINFO.setText(" 错误的域名或地址不可达! "); ThreadScan.DLGError.setVisible(true); ThreadScan.Submit.setEnabled(true); //设置开始扫描按钮可用。 return; } //判断端口号的有效性 try{ minPort=Integer.parseInt(ThreadScan.minPort.getText()); maxPort=Integer.parseInt(ThreadScan.maxPort.getText()); maxThread=Integer.parseInt(ThreadScan.maxThread.getText()); }catch(NumberFormatException e){ ThreadScan.DLGINFO.setText("错误的端口号或线程数!端口号和线程数必须为整数!"); ThreadScan.DLGError.setVisible(true); ThreadScan.Submit.setEnabled(true); //设置开始扫描按钮可用。 return; } //判断最小端口号的有效范围:大于0且小于65535,最大端口应大于最小端口 if(minPort<0 || minPort>65535 || minPort>maxPort){ ThreadScan.DLGINFO.setText("最小端口必须是0-65535并且小于最大端口的整数!"); ThreadScan.DLGError.setVisible(true); ThreadScan.Submit.setEnabled(true); //设置开始扫描按钮可用。 return; }else{ TCPThread.MIN_port=minPort; } //判断最大端口号的有效范围:大于0且小于65535,最大端口应大于最小端口 if(maxPort<0 || maxPort>65535 || maxPort200){ ThreadScan.DLGINFO.setText("线程数为1-200的整数!"); ThreadScan.DLGError.setVisible(true); ThreadScan.Submit.setEnabled(true); //设置开始扫描按钮可用。 return; } 结语 在这次课程设计中,我遇到了不少的困难。大多数是对程序的设计相关,当然还是因为知识点不全,技术不成熟造成的。不过,这个过程却使我学习了不少新的知识。包括对信息安全更深层的解理。我自认为这是一次比较成功的课程设计。不过我不知道为什么,我写的程序中还一点小BUG,就是在扫描过程中如果把窗口缩下去,再拉上来可能会导致窗口布局变乱,但这也不是经常发生的,所以不学对系统造成太大影响。由于时间关系,我不想再花时间查找原因了。但是以后有空时我会在复习这个程序时把问题解决掉。 再说明一点,我的课程设计大多时间是在我自己的机器上完成的,因为每次去机房还需要配置JAVA工作环境(本软件只有在JAVA环境下才正常运行),所以有两次我都没有去。另外,非常感谢老师对我们的辛勤指导!愿老师工作顺利,万事如意!
本文档为【端口扫描器的设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_624884
暂无简介~
格式:doc
大小:136KB
软件:Word
页数:13
分类:互联网
上传时间:2010-12-29
浏览量:86