test,read IP



          import java.io.*;
          import java.net.InetAddress;
          import java.util.*;

          public class ReadIp {
              static public HashMap ping; // ping 后的結(jié)果集

              public HashMap getPing() { // 用來(lái)得到ping后的結(jié)果集
                  return ping;
              }

              // 當(dāng)前線程的數(shù)量, 防止過(guò)多線程摧毀電腦
              static int threadCount = 0;

              public ReadIp() {
                  ping = new HashMap();
              }

              public void Ping(String ip) throws Exception {
                  // 最多30個(gè)線程
                  while (threadCount > 30)
                      Thread.sleep(50);
                  threadCount += 1;
                  PingIp p = new PingIp(ip);
                  p.start();
              }

              public void PingAll() throws Exception {
                  // 首先得到本機(jī)的IP,得到網(wǎng)段
                  
          //InetAddress host = InetAddress.getLocalHost();
                  
          //InetAddress host = InetAddress.getByName(null);
                  InetAddress host = InetAddress.getByName("127.0.0.1");
                  String hostAddress = host.getHostAddress();
                  int k = 0;
                  k = hostAddress.lastIndexOf(".");
                  String ss = hostAddress.substring(0, k + 1);
                  for (int i = 1; i <= 255; i++) { // 對(duì)所有局域網(wǎng)Ip
                      String iip = ss + i;
                      Ping(iip);
                  }

                  // 等著所有Ping結(jié)束
                  while (threadCount > 0)
                      Thread.sleep(50);
              }

              public static void main(String[] args) throws Exception {
                  ReadIp ip = new ReadIp();
                  ip.PingAll();
                  Set entries = ping.entrySet();
                  Iterator iter = entries.iterator();

                  String k;
                  while (iter.hasNext()) {
                      Map.Entry entry = (Map.Entry) iter.next();
                      String key = (String) entry.getKey();
                      String value = (String) entry.getValue();
                      
                      if (value.equals("true"))
                          System.out.println(key + "-->" + value);
                  }
              }

              class PingIp extends Thread {
                  public String ip; // IP

                  public PingIp(String ip) {
                      this.ip = ip;
                  }

                  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);
                          // 讀取結(jié)果行
                          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, "false");
                          else
                              ping.put(ip, "true");
                          
                          // 線程結(jié)束
                          threadCount -= 1;
                      } catch (IOException e) {
                      }
                  }
              }
          }

          posted on 2012-07-09 00:32 佳明 閱讀(85) 評(píng)論(0)  編輯  收藏 所屬分類: 代碼


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計(jì)

          留言簿

          隨筆分類

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          主站蜘蛛池模板: 遂溪县| 清河县| 玉树县| 大安市| 桐庐县| 紫云| 团风县| 华阴市| SHOW| 潍坊市| 南阳市| 屏山县| 西充县| 华阴市| 六枝特区| 观塘区| 新民市| 晋江市| 安新县| 惠水县| 弥渡县| 东明县| 启东市| 关岭| 新化县| 乡宁县| 子洲县| 台州市| 历史| 荆门市| 吴堡县| 岢岚县| 龙门县| 陇西县| 宁波市| 华蓥市| 宜君县| 且末县| 买车| 韩城市| 措美县|