简单端口扫描器java地设计与实现_第1页
简单端口扫描器java地设计与实现_第2页
简单端口扫描器java地设计与实现_第3页
简单端口扫描器java地设计与实现_第4页
简单端口扫描器java地设计与实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、实用文档简单端口扫描器java 的设计与实现IPScan 类的实现package scan.pratice;import .InetAddress;import .Socket;import .UnknownHostException;import java.util.ArrayList;import java.util.ListIterator;public class IPScan static long startTime=System.currentTimeMillis();/获取开始时间public static void main(S

2、tring args) if(args.length !=2)System.out.println( 参数不对 );int startIP = Integer.parseInt(args0);/ 获得起始IP,因为 args是 String 类型,所以要强制转换成int 类型int endIP = Integer.parseInt(args1);/ 获得终止 IP,同上ArrayList result = new ArrayList();/ip 地址扫描for(int id=startIP;id=endIP;id+)String addres= 10.28.23.;try Socket s=n

3、ew Socket(addres+id,8000); / 建立连接 catch (UnknownHostException e ) catch(Exception e)/System.out.println(e.toString();if(e.toString().endsWith(.ConnectException:Connectiontimedout: connect)System.out.println(addres+id+:not exist.);else文案大全实用文档System.out.println(addres+id+:exist.);ListIterator

4、 li = result.listIterator();/ 获得 ArrayList 的 ListIterator while(li.hasNext() / 如果 li 里面有元素System.out.println(li.next().toString();/ 打印出指向的元素,同时将指向下一个元素long endTime=System.currentTimeMillis(); /获取结束时间System.out.println( 程序运行时间:+(endTime-startTime)+ms);PortScan 类的实现package scan.pratice;import java.io.

5、IOException;import .InetAddress;import .Socket;import .UnknownHostException;import java.util.ArrayList;import java.util.ListIterator;public class PortScan static long startTime=System.currentTimeMillis();/ 获取开始时间public static void main(String args) if(args.length !=3)System.o

6、ut.println( 参数不对 );文案大全实用文档String ip = args0; / 获得我们指定的服务器地址int startPort = Integer.parseInt(args1);/获得起始端口号,因为args是 String 类型,所以要强制转换成int 类型int endPort = Integer.parseInt(args2);/获得终止端口号,同上if(startPort65535|endPort65535)/ 检查端口是否在合法范围 1 65535System.out.printf( 端口范围必须在1 65535 以内 !);return;else if(sta

7、rtPortendPort) /比较起始端口和终止端口System.out.println( 端口输入有误! 起始端口必须小于终止端口);return;InetAddress address;tryaddress = InetAddress.getByName(ip);/ 转换类型catch(UnknownHostException e)System.out.println( 无法找到+ ip);return;ArrayList result = new ArrayList();/端口扫描for(int nport=startPort;nport=endPort;nport+)String t

8、ypeport=;switch( nport )/ 其实这儿可以不用 switch ,直接用个 hash 表记录就可以 case 21:typeport = (FTP);break;case 23:typeport = (TELNET);break;case 25:typeport = (SMTP);break;case 80:typeport = (HTTP);break;case 110:typeport = (POP);break;case 139:typeport = (netBIOS);文案大全实用文档break;case 1433:typeport = (SQL Server);b

9、reak;case 3389:typeport = (Terminal Service);break;case 443:typeport = (HTTPS);break;case 1521:typeport = (Oracle);break;/ 从起始端口到终止端口进行循环try/System.out.print(Scanning +nport);/打印扫描进度System.out.println(ip + :+nport);Socket s=new Socket(address,nport); / 建立连接/关闭连接if(s.isConnected()result.add( 端口号: +np

10、ort+typeport+open);s.close();/ 将打开的端口添加到ArrayList result 里面/System.out.println( : open); /打印状态catch(IOException e)System.out.println(e.toString();/System.out.println( : close); / 打印状态result.add( 端口号: +nport+typeport+close);ListIterator li = result.listIterator();/获得 ArrayList 的 ListIteratorwhile(li.

11、hasNext() /如果 li 里面有元素System.out.println(li.next().toString();/打印出指向的元素,同时将指向下一个元素long endTime=System.currentTimeMillis(); /获取结束时间文案大全实用文档System.out.println( 程序运行时间:+(endTime-startTime)+ms);TCPConnect 类的实现package scan.pratice;import java.io.IOException;import .InetAddress;import .Soc

12、ket;import .UnknownHostException;import java.util.ArrayList;import java.util.ListIterator;public class TCPConnect static long startTime=System.currentTimeMillis();/ 获取开始时间public static void main(String args) if(args.length !=3)System.out.println( 参数不对 );String ip = args0; / 获得我们指定的服务器地址int s

13、tartPort = Integer.parseInt(args1);/获得起始端口号,因为args是 String 类型,所以要强制转换成int 类型int endPort = Integer.parseInt(args2);/获得终止端口号,同上if(startPort65535|endPort65535)/ 检查端口是否在合法范围 1 65535System.out.printf( 端口范围必须在1 65535 以内 !);return;else if(startPortendPort) /比较起始端口和终止端口文案大全实用文档System.out.println( 端口输入有误! 起始

14、端口必须小于终止端口);return;InetAddress address;tryaddress = InetAddress.getByName(ip);/ 转换类型catch(UnknownHostException e)System.out.println( 无法找到+ ip);return;ArrayList result = new ArrayList();/*/端口扫描for(int nport=startPort;nport=endPort;nport+)String typeport=;switch( nport )/ 其实这儿可以不用 switch ,直接用个 hash 表记

15、录就可以 case 21:typeport = (FTP);break;case 23:typeport = (TELNET);break;case 25:typeport = (SMTP);break;case 80:typeport = (HTTP);break;case 110:typeport = (POP);break;case 139:typeport = (netBIOS);break;case 1433:typeport = (SQL Server);break;case 3389:typeport = (Terminal Service);break;case 443:typ

16、eport = (HTTPS);break;文案大全实用文档case 1521:typeport = (Oracle);break;/ 从起始端口到终止端口进行循环try/System.out.print(Scanning +nport);/打印扫描进度System.out.println(ip + :+nport);Socket s=new Socket(address,nport); / 建立连接/关闭连接if(s.isConnected()result.add( 端口号: +nport+typeport+open);s.close();/ 将打开的端口添加到ArrayList resul

17、t 里面/System.out.println( : open); /打印状态catch(IOException e)System.out.println(e.toString();/System.out.println( : close); / 打印状态result.add( 端口号: +nport+typeport+close);*/ip 地址扫描for(int id=178;id183;id+)String addres= 10.28.23.;try Socket s=new Socket(addres+id,8000); / 建立连接 catch (UnknownHostException e ) catch(Exception e)/System.out.println(e.toString();if(e.toString().endsWith(.ConnectException:Connectiontimed out:connect)System.out.println(addres+id+:not exist.);elseSystem.out.println(addres+id+:

温馨提示

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

评论

0/150

提交评论