简单端口扫描器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