`

java mac 地址获得

 
阅读更多

 /**
     * 获取unix网卡的mac地址.
     * 非windows的系统默认调用本方法获取.如果有特殊系统请继续扩充新的取mac地址方法.
     * @return mac地址
     */ 
    public static String getUnixMACAddress() {  
        String mac = null;  
        BufferedReader bufferedReader = null;  
        Process process = null;  
        try {  
            process = Runtime.getRuntime().exec("ifconfig eth0");// linux下的命令,一般取eth0作为本地主网卡 显示信息中包含有mac地址信息 
            bufferedReader = new BufferedReader(new InputStreamReader(process  
                    .getInputStream()));  
            String line = null;  
            int index = -1;  
            while ((line = bufferedReader.readLine()) != null) {  
                index = line.toLowerCase().indexOf("hwaddr");// 寻找标示字符串[hwaddr] 
                if (index >= 0) {// 找到了 
                    mac = line.substring(index +"hwaddr".length()+ 1).trim();//  取出mac地址并去除2边空格 
                    break;  
                }  
            }  
        } catch (IOException e) {  
            e.printStackTrace();  
        } finally {  
            try {  
                if (bufferedReader != null) {  
                    bufferedReader.close();  
                }  
            } catch (IOException e1) {  
                e1.printStackTrace();  
            }  
            bufferedReader = null;  
            process = null;  
        }  
 
        return mac;  
    }  
 
    /**
     * 获取widnows网卡的mac地址.
     * @return mac地址
     */ 
    public static String getWindowsMACAddress() {  
        String mac = null;  
        BufferedReader bufferedReader = null;  
        Process process = null;  
        try {  
            process = Runtime.getRuntime().exec("ipconfig /all");// windows下的命令,显示信息中包含有mac地址信息 
            bufferedReader = new BufferedReader(new InputStreamReader(process  
                    .getInputStream()));  
            String line = null;  
            int index = -1;  
            while ((line = bufferedReader.readLine()) != null) {  
                index = line.toLowerCase().indexOf("physical address");// 寻找标示字符串[physical address] 
                if (index >= 0) {// 找到了 
                    index = line.indexOf(":");// 寻找":"的位置 
                    if (index>=0) {  
                        mac = line.substring(index + 1).trim();//  取出mac地址并去除2边空格 
                    }  
                    break;  
                }  
            }  
        } catch (IOException e) {  
            e.printStackTrace();  
        } finally {  
            try {  
                if (bufferedReader != null) {  
                    bufferedReader.close();  
                }  
            } catch (IOException e1) {  
                e1.printStackTrace();  
            }  
            bufferedReader = null;  
            process = null;  
        }  
 
        return mac;  
    }

分享到:
评论
1 楼 xp9802 2011-11-21  
偶然机会看到这篇文章,呵呵,获取的原理很简单,呵,受教了

相关推荐

Global site tag (gtag.js) - Google Analytics