收藏 分享(赏)

端口扫描程序设计与实现.doc

上传人:精品资料 文档编号:10728243 上传时间:2020-01-03 格式:DOC 页数:8 大小:77KB
下载 相关 举报
端口扫描程序设计与实现.doc_第1页
第1页 / 共8页
端口扫描程序设计与实现.doc_第2页
第2页 / 共8页
端口扫描程序设计与实现.doc_第3页
第3页 / 共8页
端口扫描程序设计与实现.doc_第4页
第4页 / 共8页
端口扫描程序设计与实现.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、课程设计报告( 2014- 2015 年度第 2 学期)名 称: 网络综合实验 题 目: 端口扫描程序设计与实现 院 系: 计算机系 班 级: 网络 1202 学 号: 学生姓名: 指导教师:李丽芬 曹锦刚 刘晓峰 设计周数: 2 周 成 绩: 日期:2015 年 7 月 5 日2网络综合实验任 务 书一、实验名称:端口扫描程序设计与实现二、目的与要求1 任务:设计并实现一个端口扫描程序,检测某个 IP 或某段 IP 的计算机的端口工作情况。2 目的:加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念,使得学生初步具有研究、设计、编制和调试网络程序的能力。3 要求

2、:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出完整的源程序,基本功能完善,方便易用,操作无误。4 学生人数:1 人。三、主要内容1 编写一个端口扫描程序,能够显示某个 IP 或某段 IP 的计算机的某一个或某些端口是否正在工作。(1) 设定好一定的端口扫描范围,并设定每个端口扫描的次数,因为有可能有的端口一次扫描可能不通;(3) 创建 socket,通过 socket 的 connect 方法来连接远程 IP 地址以及对应的端口;(4) 如果返回 false,表示端口没有开放,否则端口开放。四、进度计划序号 设计内容 完成时间 备注1 任务布置及资料收集 第 1 周周一、

3、周二2 软件方案设计与制定 第 1 周周三至周四3编程实现第 1 周周周五至第 2 周周二4 程序测试与修改,撰写报告 第 2 周周三至周五上午5 软件验收,报告提交 周五下午五、设计成果要求1 完成规定的实验任务,保质保量;2 完成综合实验报告,要求格式规范,内容具体而翔实,应体现自身所做的工作,注重对实验思路的归纳和对问题解决过程的总结。六、 考核方式1 平时成绩验收答辩实验报告;2 五级分制。学生姓名:韦笑3指导教师:李丽芬 曹锦刚 刘晓峰2015 年 7 月 5 日一、综合实验的目的与要求 1目的:加深对计算机网络体系结构课程知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整

4、体概念,加深对 JAVA 编程语言的使用,促进编程能力的提高,同时为网络编程打下一个比较好的基础。同时对实验的过程要有完全的了解。 2. 要求:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出完整的源程序,基本功能完善,方便易用,操作无误。二、综合实验正文1、主要方法TCP 是 Tranfer Control Protocol 的 简称,是一种面向连接的保证可靠传输的协议。发送方和接收方的成对的两个 socket 之间必须建 立连接,以便在 TCP 协议的基础上进行通信,当一个 socket(通常都是 server socket)等待建立连接时,另一个 socket 可以要求

5、进行连接,一旦这两个 socket 连接起来,它们就可以进行双向数据传输,双方都可以进行发送 或接收操作。本实验在一台主机创建 socket,与远程主机的某一个端口建立 TCP 连接,通过 java 中的isConnected() 函数判断连接是否建立成功,若连接建立成功,说明该端口开放;否则不开放。2、实验流程图43、实验优化使用 socket 创建 tcp 连接时,若连接建立不成功,则程序抛出异常,但会有一定的时延。为了加快扫描速度,程序使用了多线程技术,每个线程扫描 10 个端口,并发执行所有线程。这样就大大加快了扫描速度。4、实验结果5三、实验总结本实验通过建立 tcp 连接来扫描远程

6、主机端口是否开放,使我们更加深入地理解了 TCP/IP协议的原理,加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念。这次实验也锻炼了我 java 的编程能力,掌握了 socket 编程的各种函数和方法。实验中也出现了一些问题,比如扫描远程主机端口的速度要比扫描本主机端口速度慢很多,解决方法是关闭远程主机的防火墙。感谢老师的指导!源代码:package 端口扫描;import .Socket;import java.util.concurrent.CountDownLatch;6public class test extends Threadprivate int

7、 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; ip1i+)try /System.out.p

8、rintln(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;7pub

9、lic 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

10、= 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(“输入起始端口:“);doub

11、le 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+“.“+ipAddress3+“.“+num;System.out.println(ipAddress+“-“);for(int i=(int)startport;i=(int)endport;i=i+10)new test(new inti,i+10,latch,(int)endport,ipAddress).start();8latch.await();

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报