收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
积木学院 > 黑客技术 > 黑客编程 > 正文

简单多线程端口扫描 JAVA版

来源:互联摘选 日期:2008-08-06 12:47

/*
* 简单多线程端口扫瞄
* scan2.java
* 编译: javac scan2
* 运行:java scan2 host porMin portMax
*/

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

public class Scan2
{
public static void main(String args[])
{
int Thread_Num=60;
String host="localhost";
int minPort;
int maxPort;
int portNum;

ScanPort sp[]=new ScanPort[Thread_Num];

minPort=Integer.parseInt(args[1]);
maxPort=Integer.parseInt(args[2]);

if(args.length == 3 && minPort<maxPort)
{
host=args[0];
minPort=Integer.parseInt(args[1]);
maxPort=Integer.parseInt(args[2]);
}

//--- 计算待扫瞄端口量 ---//
portNum=maxPort-minPort+1;


if(portNum < Thread_Num)
{
//--- 如果端口数小于总线程 ---//
for(int i=0; i<portNum; i++)
{
sp[i]=new ScanPort(host,minPort+i,minPort+i,i);
sp[i].start();
}
}
else
{
int startPort = minPort, endPort = minPort;
      int A = portNum / Thread_Num ; 
  int B = portNum % Thread_Num;

for(int i=0; i<Thread_Num; i++)
{
if(B <= Thread_Num)
{
startPort = endPort;
if ( i!= 0)
startPort += 1;
endPort = startPort + A -1;

if ( i < B)
endPort += 1;

sp[i]=new ScanPort(host,startPort,endPort,i);
sp[i].start();
}
else
{
System.out.println("b大于60");
}
}
}

try
{
loop:
while(true)
{
for(int i=0; i<Thread_Num; i++)
if(sp[i].isAlive()) continue loop;
break;
}
}
catch(NullPointerException e)
{
System.out.println(e.toString());
}

System.out.println("主程序结束");
}
}

class ScanPort extends Thread
{
//--- 分别定义目标,开始端口,结束端口,线程标记 ---//
private String host;
private int sPort;
private int ePort;
private int tag;
private int i;

//--- 构造函数(重新构造端口) ---//
ScanPort(String h, int sP, int eP, int t)
{
super();
  host=h;
sPort=sP;
ePort=eP;
tag=t;
}

public void run()
{
    //--- 测试端口是否打开 ---//

for(i=sPort; i<=ePort; i++)
{
try
{
Socket s = new Socket(host, i);
System.out.println("Host:"+host+" Port: "+i+" is Opening."+tag+"线程");
Thread.yield();
}
catch(IOException e)
{
System.out.println("Host:"+host+" Port: "+i+" is Closed."+tag+"线程");
}
}
}
}

推荐阅读

 

热点信息

 
强悍的草根IT技术社区,这里应该有您想要的! 友情链接:b2b电子商务
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号