




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
..计算机网络课程设计论文题目:简单端口扫描程序的实现院(部)名称:计算机科学与工程学院学生姓名:专业:学号:指导教师:报告提交时间:报告辩论时间:〔不填〕目录一、设计要求2二、开发环境与工具2三、设计原理2四、系统功能描述及软件模块划分2五、设计步骤2六、关键问题及其解决方法2七、设计结果3八、软件使用说明3九、参考资料3一、设计要求本系统实现了一个简单的端口扫描器。1.使用端口扫描对一台主机进展扫描,一台主机上有哪些端口是翻开的;2.对一个网段进展IP扫描,显示出一个网段有哪些主机是开机的。二、开发环境与工具Windows的pc机Jdk包,:具备网络环境并连入Internet。三、设计原理IP地址和端口被称作套接字,它代表一个TCP连接的一个连接端。为了获得TCP效劳,必须在发送机的一个端口上和接收机的一个端口上建立连接。TCP连接用两个连接端来区别,也就是〔连接端1,连接端2〕。连接端互相发送数据包。端口扫描是在应用程序运行在TCP或者UDP协议之上工作的,这些协议是众多应用程序使用的传输机制,端口扫描是通过扫描主机确定哪一些TCP和UDP端口可以访问的过程.端口扫描常见的几种类型:TCPConnect()扫描SYN扫描NULL扫描ACK扫描Xmas-TreeDumb扫描。Ping命令经常用来对TCP/IP网络进展诊断。通过目标计算机发送一个数据包,让它将这个数据包反送回来,如果返回的数据包和发送的数据包一致,那就是说你的PING命令成功了。通过这样对返回的数据进展分析,就能判断计算机是否开着,或者这个数据包从发送到返回需要多少时间。Tracert命令用来跟踪一个消息从一台计算机到另一台计算机所走的路径,rusers和finger通过这两个命令,你能收集到目标计算机上的有关用户的消息。扫描器通过选用远程TCP/IP不同的端口的效劳,并记录目标给予的答复,通过这种方法,可以搜集到很多关于目标主机的各种有用的信息。总之,端口扫描〞通常指用同一信息对目标计算机的所有所需扫描的端口进展发送,然后根据返回端口状态来分析目标计算机的端口是否翻开、是否可用。"端口扫描〞行为的一个重要特征,是在短时期有很多来自一样的信源地址,传向不同的目的、地端口的包。对于用端口扫描进展攻击的人来说,攻击者总是可以做到在获得扫描结果的同时,使自己很难被发现或者说很难被逆向寻踪。为了隐藏攻击,攻击者可以慢慢地进展扫描。除非目标系统通常闲着〔这样对一个没有listen〔〕端口的数据包都会引起管理员的注意〕,有很大时间间隔的端口扫描是很难被识别的。隐藏源地址的方法是发送大量的欺骗性的端口扫描数据包〔如1000个〕,其中只有一个是从真正的源地址来的。这样即使全部数据包都被发觉,被记录下来,也没有人知道哪个是真正的信源地址。能发现的仅仅是"曾经被扫描过〞的地址。也正因为这样,那些黑客们才乐此不疲地继续大量使用,这种端口扫描技术,来到达他们获取目标计算机信息,并进展恶意攻击的目的。
通常进展端口扫描的工具目前主要采用的是端口扫描软件,也称之为"端口扫描器〞。端口扫描器也是一种程序,它可以对目标主机的端口进展连接,并记录目标端口的应答。端口扫描器通过选用远程TCP/IP协议不同的端口的效劳,记录目标计算机端口给予答复的方法,可以收集到很多关于目标计算机的各种有用信息〔比方是否有端口在侦听,是否允许匿名登录,是否有可写的FTP目录,是否能用Telnet等〕。
虽然端口扫描器可以用于正常网络平安管理,但就目前来说,它主要还是被黑客所利用,是黑客入侵、攻击前期不可缺少的工具。黑客一般先使用扫描工具扫描待入侵主机,掌握目标主机的端口翻开情况,然后采取相应的入侵措施。
无论是正常用途,还是非法用途,端口扫描可以提供4个用途。
1.识别目标主机上有哪些端口是开放的,这是端口扫描的最根本目的。
2.识别目标系统的操作系统类型〔Windows、Linux或UNIX等〕。
3.识别某个应用程序或某个特定效劳的版本号。
4.识别目标系统的系统漏洞,这是端口扫描的一种新功能。
当然以上这些功能不可能是一成不变的,随着技术的不断完善,新的功能会不断地增加。端口扫描器并不是一个直接攻击网络漏洞的程序,它仅仅能帮助发现目标计算机的某些在的弱点。一个好的扫描器还能对它得到的数据进展分析,帮助查找目标计算机的漏洞。但它不会提供一个系统的详细步骤。
编写扫描器程序必须要很多TCP/IP协议程序,以及C、Perl和SHELL语言的知识,还需要一些Socket编程的背景。四、系统功能描述及软件模块划分主要功能有:1.使用端口扫描对一台主机进展扫描,一台主机上有哪些端口是翻开的;2.对一个网段进展IP扫描,显示出一个网段有哪些主机是开机的。软件所包含的主要模块有:1.对IP的处理。包括对IP的移位和运算等。2.对本机个端口的扫描。3.对本网段的其他主机个端口的扫描。五、设计步骤六、关键问题及其解决方法完整的代码如下:importjava.io.*;import.*;importjava.util.*;importjava.lang.*;importjava.lang.String.*;importjava.lang.Integer.*;importjava.awt.*;publicclassScanPort2{publicstaticvoidmain(Stringargs[]){System.out.println();System.out.println("*********自定义多IP多TCP端口扫描程序*******");System.out.println("*******按Ctrl+c退出扫描*******");Stringshubeginip="",shuendip="";Stringsp1="",sp2="",sp3="";intbeginport,endport;intmaxThread=0;//异常判断变量intbport=0,eport=0;booleanbool=false;booleanbool1=false;booleanbool2=false;booleanbool3=false;booleanbool4=false;long**x=0,**x2=0;//由用户输入扫描围//读取输入开场ipSystem.out.println();System.out.println("请输入起始ip:");while(!bool){try{BufferedReaderin1=newBufferedReader(newInputStreamReader(System.in));shubeginip=in1.readLine();**x=.ipj(shubeginip);if(**x==0){bool=false;System.out.println("IP格式错误,请输入正确的起始ip:");}elseif(**x<=.ipj("")){bool=false;System.out.println("IP围错误,请输入正确的起始ip:");}elsebool=true;}catch(IOExceptione){System.out.println("IP格式错误,请输入正确的起始ip:");}catch(NumberFormatExceptione){System.out.println("IP格式错误,请输入正确的起始ip:");}catch(StringIndexOutOfBoundsExceptione){System.out.println("IP格式错误,请输入正确的开场ip:");}catch(NullPointerExceptione){System.out.print("退出程序!");}}//读取输入完毕ipSystem.out.println();System.out.println("请输入完毕ip:");while(!bool1){try{BufferedReaderin2=newBufferedReader(newInputStreamReader(System.in));shuendip=in2.readLine();**x2=.ipj(shuendip);if(**x2==0){bool1=false;System.out.println("IP格式错误,请输入正确的完毕ip:");}elseif(Math.abs(**x2-**x)>5155130){bool1=false;System.out.println("扫描IP数不能大于5155130,请输入正确的完毕ip:");}elsebool1=true;}catch(IOExceptione){System.out.println("IP格式错误,请输入正确的完毕ip:");}catch(NumberFormatExceptione){System.out.println("IP格式错误,请输入正确的完毕ip:");}catch(StringIndexOutOfBoundsExceptione){System.out.println("IP格式错误,请输入正确的完毕ip:");}catch(NullPointerExceptione){System.out.print("退出程序!");}}//读取输入起始端口System.out.println();System.out.println("请输入起始端口:");while(!bool2){try{BufferedReaderin3=newBufferedReader(newInputStreamReader(System.in));sp1=in3.readLine();bport=Integer.parseInt(sp1);if(bport<0|bport>65535){System.out.println("端口错误,请输入正确的起始端口:");bool2=false;}elsebool2=true;}catch(IOExceptione){System.out.println("端口错误,请输入正确的起始端口:");}catch(NumberFormatExceptione){System.out.println("端口错误,请输入正确的起始端口:");}}beginport=Integer.parseInt(sp1);//读取输入完毕端口System.out.println();System.out.println("请输入完毕端口:");while(!bool3){try{BufferedReaderin4=newBufferedReader(newInputStreamReader(System.in));sp2=in4.readLine();eport=Integer.parseInt(sp2);if(eport<beginport|eport>65535){System.out.println("端口错误,请输入正确的完毕端口:");bool3=false;}elsebool3=true;}catch(IOExceptione){System.out.println("端口错误,请输入正确的完毕端口:");}catch(NumberFormatExceptione){System.out.println("端口错误,请输入正确的起始端口:");}}endport=Integer.parseInt(sp2);//读取输入最大线程数System.out.println();System.out.println("请输入最大线程(1-300):");while(!bool4){try{BufferedReaderin5=newBufferedReader(newInputStreamReader(System.in));sp3=in5.readLine();maxThread=Integer.parseInt(sp3);if(maxThread>300|maxThread<1){System.out.println("请输入1-300之间的整数:");bool4=false;}elsebool4=true;}catch(IOExceptione){System.out.print("退出程序!");}catch(NumberFormatExceptione){System.out.println("请输入1-300之间的整数");}catch(NullPointerExceptione){System.out.print("退出程序!");}}maxThread=Integer.parseInt(sp3);//开场扫描System.out.println("正在处理IP地址……");longlong_beginip=.ipj(shubeginip);//转换iplonglong_endip=.ipj(shuendip);intallport=endport-beginport+1;//计算扫描端口总数intallip=(int)Math.abs(long_beginip-long_endip)+1;intt1=0,t2=0;//计算耗时longbegint,endt,alltime;Datemydate=newDate();begint=mydate.getTime();//获取当前时间try{//计算两个ip值之间的所有iplong[]ipduan=newlong[(int)Math.abs(long_beginip-long_endip)+1];for(intk=0;k<=Math.abs(long_beginip-long_endip);k++){if(long_beginip-long_endip<0)ipduan[k]=long_beginip+k;elseipduan[k]=long_endip+k;}String[]ips1=newString[ipduan.length];System.out.println("正在扫描……");for(inta=0;a<=ipduan.length;a++){ips1[a]=.ipk(ipduan[a]);if(ips1[a]!=null){System.out.println("正在扫描:"+ips1[a]);for(intxPort=beginport;xPort<=endport;xPort++){intx=quanjubianliang.Threadnum;if(x>maxThread){try{Thread.sleep(100);}catch(InterruptedExceptione){}}StringthreadName="thread"+xPort;if(xPort!=21)newScanThread(ips1[a],xPort,threadName).start();}}elseallip=allip-1;}}catch(Exceptionexp){System.out.println();}Datemydate2=newDate();//获取完毕时间try{Thread.sleep(1000);}catch(InterruptedExceptione){}System.out.println("扫描完成!");endt=mydate2.getTime();alltime=endt-begint;System.out.print("扫描了"+allip+"个IP共"+allip*allport+"个端口,用时"+alltime+"毫秒");}}//全局变量,用做限制最大线程classquanjubianliang{publicstaticintThreadnum=0;}//扫描线程classScanThreadextendsThread{privateStringghost;privateintscanP;publicScanThread(Stringh,intmPort,StringthreadName){ghost=h;scanP=mPort;}publicvoidrun(){quanjubianliang.Threadnum=quanjubianliang.Threadnum+1;try{SocketAddresssockaddr=newInetSocketAddress(ghost,scanP);Socketscans=newSocket();inttimeoutMs=50;scans.connect(sockaddr,timeoutMs);scans.close();System.out.println("主机:"+ghost+"TCP端口:"+scanP+"在线");}catch(SocketTimeoutExceptione){}catch(IOExceptione){}quanjubianliang.Threadnum=quanjubianliang.Threadnum-1;}}//ip处理class{//将字符串ip转换成长整型publicstaticlongipj(StringipAddress){long[]ip=newlong[4];intposition1=ipAddress.indexOf(".");intposition2=ipAddress.indexOf(".",position1+1);intposition3=ipAddress.indexOf(".",position2+1);ip[0]=Long.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级体育上册 2.3出升的太阳教学实录
- 第13课《七、插入更新日期》教学设计 2023-2024学年初中信息技术人教版七年级上册
- 小学信息技术《 第5课 下载平台资源》教学设计
- 五年级数学(小数乘法)计算题专项练习及答案
- 括 号(教学设计)-2023-2024学年四年级下册数学人教版
- 债权债务转让合同范例
- 八年级语文下册 第九课 桃花源记第2课时教学实录 新人教版
- 与工人用工合同范本
- 劳动合同范例精简
- 事业单位职员劳动合同范例
- (精心整理)林海雪原阅读题及答案
- 适合汽车行业的英语爱好者
- 专用夹具设计说明书
- 气缸选型介绍.ppt课件
- 国内汽车产销数据四个统计口径数据利益链
- 消防设施检测内容及流程
- 零序保护整定说明
- 帆船帆板俱乐部创业计划书
- 砌体墙的基本构造做法及附图
- 第二章 法国学前教育
- 精雕JDPaint常用快捷键
评论
0/150
提交评论