动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   程序开发 → 阅读文章

 扫描整个网段的多线程程序

作者来源: 
阅读 数 509 人次 , 2006-4-28 8:33:00 


  扫描500个IP10秒钟左右, 一个IP等待0.3秒

用java写的过程编程,供参考:

package steeven;

import java.sql.*;

import java.io.*;

import java.util.*;

import java.text.*;

import javax.servlet.http.*;

public class Ip extends Common implements Runnable{

public String ip; // IP, 用户名, 主机名

ResultSet list; // 分页显示的记录集

public Ip cur; // 分页显示的当前记录

static public Hashtable ping = new Hashtable(); //ping 后的结果集

static int threadCount = 0; //当前线程的数量, 防止过多线程摧毁电脑

public Ip() {}

public Ip(String ip){

this.ip=ip;

Thread r = new Thread(this);

r.start();

}

public static void Ping(String ip) throws Exception{

//最多30个线程

while(threadCount>30)

Thread.sleep(50);

threadCount +=1;

Ip p = new Ip(ip);

}

public void PingAll() throws Exception{

threadCount =0;

ping = new Hashtable();

while(next()) //next()对所有局域网Ip放到cur

Ping(cur.ip);

//等着所有Ping结束

while(threadCount>0)

Thread.sleep(50);

}

public void run(){

try{

Process p= Runtime.getRuntime().exec ("ping "+ip+ " -w 300 -n 1");

InputStreamReader ir = new InputStreamReader(p.getInputStream());

LineNumberReader input = new LineNumberReader (ir);

//读取结果行

for (int i=1 ; i<7; i++)

input.readLine();

String line= input.readLine();

if (line.length()<17 || line.substring(8,17).equals("timed out"))

ping.put(ip,new Boolean(false));

else

ping.put(ip,new Boolean(true));

//线程结束

threadCount -= 1;

}catch (IOException e){}

}

public static void main(String[] args) throws Exception{

Ip ip= new Ip();

ip.PingAll();

java.util.Enumeration key = ping.keys();

String k;

while((k = (String)key.nextElement()) != null)

System.out.println(k+": "+ping.get(k));

}

}
  
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:使用JAVA建立稳定的多线程服务器
· 下一篇:使用多线程技术让你的Swing及时响应各类事件
· Palm OS应用程序设计指南之二
· 用JavaBean实现文件上载(一)请求分析
· NoahWeb™引擎介绍
· Java进阶:Struts多模块的技巧
· 设计模式之Strategy(策略)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077