java端口扫描器_简单端口扫描器java的设计与实现.doc

本文档介绍了如何使用Java编程实现一个简单的端口扫描器。主要包括两个类:IPScan和PortScan。IPScan用于扫描指定IP地址范围内的主机存活状态,而PortScan则针对特定IP地址扫描指定范围的端口开放情况。通过Socket连接尝试,根据异常处理判断端口是否开放,并输出运行时间。
摘要由CSDN通过智能技术生成

简单端口扫描器java的设计与实现.doc

简单端口扫描器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(String[] args) { if(args.length !=2){ System.out.println("参数不对"); } int startIP = Integer.parseInt(args[0]); //获得起始IP,因为args[]是String类型,所以要强制转换成int类型 int endIP = Integer.parseInt(args[1]); //获得终止IP,同上 ArrayList result = new ArrayList(); //ip地址扫描 for(int id=startIP;id<=endIP;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: Connection timed out: connect")){ System.out.println(addres+id+":not exist."); }else{ } } System.out.println(addres+id+":exist."); } } } ListIterator 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.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.out.println("参数不对"); } String ip = args[0]; //获得我们指定的服务器地址 int startPort = Integer.parseInt(args[1]); //获得起始端口号,因为args[]是String类型,所以要强制转换成int类型 int endPort = Integer.parseInt(args[2]); //获得终止端口号,同上 if(startPort<1||start

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值