Java學習

          java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經(jīng)搬家了,新的地址是 http://www.javaly.cn 如果有對文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會盡力幫助解決。一起進步

           

          利用正則表達式獲取網(wǎng)卡的MAC地址

              現(xiàn)在網(wǎng)上有許多用java實現(xiàn)的獲取MAC地址的方法,都是利用了windows系統(tǒng)的config命令,但是這些方法都是直接查找config命令的輸 出字符串。這種方法對一種語言的windows系統(tǒng)還可以,當在其它語言的系統(tǒng)下運行時,就會出現(xiàn)問題,本文的代碼利用正則表達式,使獲取MAC地址的程 序能夠在多語言環(huán)境下運行。

          import java.io.*;
          import java.util.regex.*;
          public class ReadMacByJava
          {
          private String mPhysicalAddress = "";
          private int mPhysicalMacNumber = 0;
          private boolean isInit = false;

          public ReadMacByJava()
          {
          }

          public void init()
          {
          try
          {
          String line;
          Process process = Runtime.getRuntime().exec("cmd /c ipconfig /all");
          BufferedReader bufferedReader = new BufferedReader(
          new InputStreamReader(process.getInputStream()));
          Pattern macPattern =
          Pattern.compile("([0-9A-Fa-f]{2})(-[0-9A-Fa-f]{2}){5}");
          Matcher macMatcher;
          boolean result;
          while ((line = bufferedReader.readLine()) != null)
          {
          if ("".equals(line))
          continue;
          macMatcher = macPattern.matcher(line);
          result = macMatcher.find();
          if (result)
          {
          mPhysicalMacNumber++;
          if ("".equals(mPhysicalAddress))
          mPhysicalAddress = macMatcher.group(0);
          else
          mPhysicalAddress += ("," + macMatcher.group(0));
          }
          }
          }
          catch (Exception e)
          {
          e.printStackTrace();
          }
          isInit = true;
          }
          public String getPhysicalAddress()
          {
          if (isInit)
          return this.mPhysicalAddress;
          else
          return "Mac is not init.";
          }
          public int getPhysicalMacNumber()
          {
          if (isInit)
          return this.mPhysicalMacNumber;
          else
          {
          System.out.println("Mac is not init.");
          return 0;
          }
          }
          public static void main(String[] args)
          {
          ReadMacByJava mac = new ReadMacByJava();
          mac.init();
          System.out.println("MAC "+mac.getPhysicalMacNumber()+" address :"
          + mac.getPhysicalAddress());
          }
          }
            運行結(jié)果:
          C:\java>java ReadMacByJava
          MAC 1 address :00-40-CA-C9-9F-71


          來源:http://www.java3z.com/cwbwebhome/article/article5/5930.html?id=1873

          posted on 2008-07-15 16:53 找個美女做老婆 閱讀(1116) 評論(0)  編輯  收藏


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


          網(wǎng)站導航:
           

          導航

          統(tǒng)計

          公告

          本blog已經(jīng)搬到新家了, 新家:www.javaly.cn
           http://www.javaly.cn

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 罗城| 昌乐县| 嵊州市| 贡嘎县| 崇仁县| 丰原市| 元阳县| 崇礼县| 白玉县| 乌鲁木齐市| 玉门市| 鄯善县| 泰来县| 建德市| 红桥区| 静海县| 泽库县| 洛南县| 镇安县| 孝昌县| 江源县| 西乌珠穆沁旗| 孝感市| 大安市| 九龙坡区| 新昌县| 平果县| 保德县| 平乐县| 苏尼特右旗| 曲麻莱县| 井研县| 塘沽区| 马鞍山市| 普宁市| 泸定县| 安顺市| 镇安县| 彩票| 财经| 行唐县|