| 
                
            现在网上有许多用java实现的获取MAC地址的方法,都是利用了windows系统的config命令,但是这些方法都是直接查找config命令的输
            出字符串。这种方法对一种语言的windows系统还可以,当在其它语言的系统下运行时,就会出现问题,本文的代码利用正则表达式,使获取MAC地址的程
            序能够在多语言环境下运行。  
            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()); 
            } 
            } 
             | 
            
             
            
            
            
             
             | 
        
    
 
运行结果:
C:\java>java    ReadMacByJava
MAC 1 address :00-40-CA-C9-9F-71
来源:http://www.java3z.com/cwbwebhome/article/article5/5930.html?id=1873