0

Java端口扫描技术

Posted in Java at 三月 24th, 2010 / No Comments »

import java.net.*;
import java.io.*;

public class Scanner implements Runnable
{
 private InetAddress IPAddress;
 private int Port;
 private Thread allportThread;

 public Scanner(String IPAddress, int port)
 {
  try
  {
   this.IPAddress = this.IPAddress.getByName(IPAddress);
   this.Port = port;
  }
  catch(Exception e)
  {
   System.out.println(“The host does not exist.”);
  }
 }

 public void run()
 {

  try
  {
   Socket TestPort = new Socket(this.IPAddress, this.Port); //if this port cannot been connected, throw a exception.
   System.out.println(this.Port + “: exist”); //if connected, print out.
  }
  catch(Exception e){}
 }

 public static void main(String[] args)
 {
  String str;
  str =  “TPoI Scanner 1.0 – Network Host Scanner\n”;
  str += “Author: T.T (TPoI:http://www.tpoi.net)\n\n”;
  str += “Usage: Scanner \n\n”;
  str += ” List:\n”;
  str += “   -allport : scan the status of all the ports of the specified host\n”;
  str += “   -port %0 : scan the status of the specified ports(%0) of the specified host\n\n”;
  str += “Examples:\n”;
  str += “   Scanner -allport http://www.microsoft.com/n“;
  str += “   Scanner -port 80 21.64.34.191″;

  if(args.length==0)
  {
   System.out.println(str);
  }
  else
  {  
   args[0] = args[0].toUpperCase().trim();
   char switchArgs = args[0].charAt(1);
   switch(switchArgs)
   {
    case ‘A’:
    {
     for(int i=1;i<=65535;i++)
     {
      Scanner mainScanner = new Scanner(args[1],i);
      if(mainScanner.allportThread.activeCount()>100)
       mainScanner.run();
      else
      {
       mainScanner.allportThread = new Thread(mainScanner);
       mainScanner.allportThread.start();
      }
     }
     break;
    }
    case ‘P’:
    {
     Scanner mainScanner = new Scanner(args[2],java.lang.Integer.parseInt(args[1],10));
     try
     {
      mainScanner.run();
     }
     catch(Exception e)
     {
      System.out.println(“parameter error”);
     }
     break;
    }
    default:
     System.out.println(str);
   }
  }
 }
}

Published in Java

No Responses to “Java端口扫描技术”

Leave a Reply

请输入算式结果(看不清请点击图片)
(必须)