端口扫描程序设计与实现.doc_第1页
端口扫描程序设计与实现.doc_第2页
端口扫描程序设计与实现.doc_第3页
端口扫描程序设计与实现.doc_第4页
端口扫描程序设计与实现.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告( 2014- 2015年度第2学期)名 称: 网络综合实验 题 目: 端口扫描程序设计与实现 院 系: 计算机系 班 级: 网络1202 学 号: 学生姓名: 指导教师:李丽芬 曹锦刚 刘晓峰 设计周数: 2周 成 绩: 日期:2015 年 7 月 5 日网络综合实验任 务 书一、实验名称:端口扫描程序设计与实现二、目的与要求1 任务:设计并实现一个端口扫描程序,检测某个IP或某段IP的计算机的端口工作情况。2 目的:加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念,使得学生初步具有研究、设计、编制和调试网络程序的能力。3 要求:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出完整的源程序,基本功能完善,方便易用,操作无误。4 学生人数:1人。三、主要内容1 编写一个端口扫描程序,能够显示某个IP或某段IP的计算机的某一个或某些端口是否正在工作。(1) 设定好一定的端口扫描范围,并设定每个端口扫描的次数,因为有可能有的端口一次扫描可能不通;(3) 创建socket,通过socket的connect方法来连接远程IP地址以及对应的端口;(4) 如果返回false,表示端口没有开放,否则端口开放。四、进度计划序号设计内容完成时间备注1任务布置及资料收集第1周周一、周二2软件方案设计与制定第1周周三至周四3编程实现第1周周周五至第2周周二4程序测试与修改,撰写报告第2周周三至周五上午5软件验收,报告提交 周五下午五、设计成果要求1 完成规定的实验任务,保质保量;2 完成综合实验报告,要求格式规范,内容具体而翔实,应体现自身所做的工作,注重对实验思路的归纳和对问题解决过程的总结。六、 考核方式1 平时成绩验收答辩实验报告;2 五级分制。 学生姓名:韦笑指导教师:李丽芬 曹锦刚 刘晓峰 2015 年7 月 5 日一、综合实验的目的与要求 1目的:加深对计算机网络体系结构课程知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念,加深对JAVA编程语言的使用,促进编程能力的提高,同时为网络编程打下一个比较好的基础。同时对实验的过程要有完全的了解。 2. 要求:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出完整的源程序,基本功能完善,方便易用,操作无误。二、综合实验正文1、主要方法TCP是Tranfer Control Protocol的 简称,是一种面向连接的保证可靠传输的协议。发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送 或接收操作。本实验在一台主机创建socket,与远程主机的某一个端口建立TCP连接,通过java中的isConnected() 函数判断连接是否建立成功,若连接建立成功,说明该端口开放;否则不开放。2、实验流程图3、实验优化使用socket创建tcp连接时,若连接建立不成功,则程序抛出异常,但会有一定的时延。为了加快扫描速度,程序使用了多线程技术,每个线程扫描10个端口,并发执行所有线程。这样就大大加快了扫描速度。4、实验结果三、实验总结本实验通过建立tcp连接来扫描远程主机端口是否开放,使我们更加深入地理解了TCP/IP协议的原理,加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念。这次实验也锻炼了我java的编程能力,掌握了socket编程的各种函数和方法。实验中也出现了一些问题,比如扫描远程主机端口的速度要比扫描本主机端口速度慢很多,解决方法是关闭远程主机的防火墙。感谢老师的指导!源代码:package 端口扫描;import .Socket;import java.util.concurrent.CountDownLatch;public class test extends Thread private int p; Socket ss = null; CountDownLatch latch; private String ipAddress; private int port; public test(int p,CountDownLatch latch,int port,String ipAddress) this.p = p; this.latch=latch; this.ipAddress=ipAddress; this.port=port; public void run() /System.err.println(启动线程); for(int i=p0; ip1&i=port;i+) try /System.out.println(i); ss = new Socket(ipAddress,i); if(ss.isConnected()System.err.println(端口 + i+空闲); ss.close(); catch (Exception e) System.out.println(端口 + i+占用); latch.countDown(); /System.out.println(latch.getCount(); package 端口扫描;import java.util.Scanner;import java.util.concurrent.CountDownLatch;public class test2 public static void main(String args) throws InterruptedException CountDownLatch latch = null; String ip; String ipAddress1; String ipAddress2; String ipAddress3; String ipAddress41; String ipAddress42; System.out.print(输入起始ip地址:); Scanner s=new Scanner(System.in); ip=s.next(); String strs = ip.split(.); ipAddress1= strs0; ipAddress2 = strs1; ipAddress3 = strs2; ipAddress41 = strs3; System.out.print(输入终止ip地址:+ipAddress1+.+ipAddress2+.+ipAddress3+.); ipAddress42=s.next(); int start=Integer.parseInt(ipAddress41); int end=Integer.parseInt(ipAddress42); System.out.print(输入起始端口:); double startport=s.nextInt(); System.out.print(输入终止端口:); double endport=s.nextInt(); s.close(); int th=(int) Math.ceil(endport-startport+1)/10); System.out.println(开启+th+线程); for(int num=start;num=end;num+) latch=new CountDownLatch(th); String ipAddress = ipAddress1+.+ipAddress2+.+ipAddres

温馨提示

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

评论

0/150

提交评论