《端口扫描程序设计与实现.pdf》由会员分享,可在线阅读,更多相关《端口扫描程序设计与实现.pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-课程设计报告课程设计报告(04 15 年度第 2 学期)名称:网络综合实验题目:端口扫描程序设计与实现院系:计算机系班级:网络 122学号:学生姓名:指导教师:李丽芬曹锦刚刘晓峰设计周数:周成绩:日期:2015 年 7 月 5 日-网络综合实验网络综合实验任任务务书书一、实验名称:端口扫描程序设计与实现一、实验名称:端口扫描程序设计与实现二、目的与要求二、目的与要求1 任务:设计并实现一个端口扫描程序,检测某个 I或某段 IP 的计算机的端口工作情况。2 目的:加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念,使得学生初步具有研究、设计、编制和调试网络程序的能
2、力.3 要求:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出完整的源程序,基本功能完善,方便易用,操作无误。4 学生人数:1 人。三、主要内容三、主要内容1 编写一个端口扫描程序,能够显示某个IP 或某段 IP 的计算机的某一个或某些端口是否正在工作。(1)设定好一定的端口扫描范围,并设定每个端口扫描的次数,因为有可能有的端口一次扫描可能不通;()创建 sock,通过 sock的oc方法来连接远程P地址以及对应的端口;(4)如果返回 false,表示端口没有开放,否则端口开放.四、进度计划四、进度计划序号序号设计内容设计内容任务布置及资料收集软件方案设计与制定编程实现程序测
3、试与修改,撰写报告软件验收,报告提交完成时间完成时间第 1 周周一、周二第周周三至周四第 1 周周周五至第2周周二第 2 周周三至周五上午周五下午备注备注1345五、设计成果要求五、设计成果要求1 完成规定的实验任务,保质保量;2 完成综合实验报告,要求格式规范,内容具体而翔实,应体现自身所做的工作,注重对实验思路的归纳和对问题解决过程的总结。六、六、考核方式考核方式1 平时成绩验收答辩实验报告;2 五级分制。学生姓名:韦笑指导教师:李丽芬曹锦刚刘晓峰-205 年 7 月 日一、综合实验的目的与要求一、综合实验的目的与要求1。目的:加深对计算机网络体系结构课程知识的理解,熟练掌握基本的网络编程
4、技术和方法,建立网络编程整体概念,加深对 JAVA 编程语言的使用,促进编程能力的提高,同时为网络编程打下一个比较好的基础.同时对实验的过程要有完全的了解。要求:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出完整的源程序,基本功能完善,方便易用,操作无误。二、综合实验正文二、综合实验正文1、主要方法TCP 是 Traner Contrlrtcol 的 简称,是一种面向连接的保证可靠传输的协议。发送方和接收方的成对的两个 soket 之间必须建 立连接,以便在 TCP 协议的基础上进行通信,当一个 socket(通常都是 sevr socket)等待建立连接时,另一个 soc
5、ket 可以要求进行连接,一旦这两个cet 连接起来,它们就可以进行双向数据传输,双方都可以进行发送 或接收操作。本实验在一台主机创建 socke,与远程主机的某一个端口建立 TCP 连接,通过ava 中的isoncted()函数判断连接是否建立成功,若连接建立成功,说明该端口开放;否则不开放。2、实验流程图-、3实验优化使用 scke创建 tcp 连接时,若连接建立不成功,则程序抛出异常,但会有一定的时延。为了加快扫描速度,程序使用了多线程技术,每个线程扫描 10 个端口,并发执行所有线程.这样就大大加快了扫描速度。、4实验结果-三、实验总结三、实验总结本实验通过建立 tc连接来扫描远程主机
6、端口是否开放,使我们更加深入地理解了TP/IP协议的原理,加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念。这次实验也锻炼了我jaa 的编程能力,掌握了 socet 编程的各种函数和方法。实验中也出现了一些问题,比如扫描远程主机端口的速度要比扫描本主机端口速度慢很多,解决方法是关闭远程主机的防火墙.感谢老师的指导!源代码:ckag 端口扫描;import jaa.ne.Socke;poava.utilconcurrn.CotDonac;-publiclass test xendsTheadprae int p;ot ss=l;CountDownLatchlatc
7、h;rvate SingiAdrs;prvate ntpt;pulc te(it,CountDownLath th,nt por,t ipAdes)tis。pp;ths。lach=lt;hipAddress=ipAdres;thi。pot=prt;pbc od run()/ytrritln(”启动线程);or(int i=p0;ip1&i=port;+)ry/Sytem。otprntn(i);s=n Soce(iAdres,i);if(ss.sConncted())System。eprintln(端口 +i+”空闲”);s.lo();ctc(Exeption e)stem。ou.pinln(端
8、口”+i占用);lat.coutDo();/Syste.otrnl(lath.getCou());akage 端口扫描;-mrt ja。uti。Scaner;import jaa.til。conurentCntonLah;ublass tes pulic statc o main(String gs)rows InterrpedExcetio ountDownLatchlatch=nul;String p;Stin ipAdrss1;Srg ipAdress2;trig ipAdress3;StrnpAdres4;ring pdress42;System。ut.pnt(输入起始 ip 地址:)
9、;Scaners=new Scnnr(Syte.n);i=net();String trs ip。split(。”);iAdres1=str;pAdress2 srs1;ipAddress=strs;pAdes4 ts3;System.ot.prit(输入终止 ip 地址:+pAddress1+”+pdess2+”.”+ipre3+”.”);ipAdress42=s。ext();nt strtInte.pareIt(ipAddress1);int en=ntger.parseInt(iAdess2);Sysmout.prin(输入起始端口:);ouble statrt=s.nxIt();Sys
10、tem.out.print(”输入终止端口:”);doube endpot=nt();s。le();in t=(nt)Math。eil((enort-rtort+1)/10);Sm。ut.rntln(开启+h+线程”);or(int num=tart;nu=n;num+)atch=w CuntDownLat(th);Srng ipAdres=ipAdress”。”+pddress2+”+ipA dress+。”+nm;-Sysm.ot.rintln(ipddress+-);fr(nt=(in)sartot;i(int)edport;ii+10)new e(new int,i+1,ath,(in)ndport,iAddess)。star();lathait();-