zoukankan      html  css  js  c++  java
  • java获取本机网卡的MAC地址

     

    • import java.io.BufferedReader;   
    • import java.io.IOException;   
    • import java.io.InputStreamReader;   
    •   
    • /**  
    •  * 与系统相关的一些常用工具方法.  
    •  *   
    •  * @author stephen  
    •  * @version 1.0.0  
    •  */  
    • public class SystemTool {   
    •   
    •     /**  
    •      * 获取当前操作系统名称.  
    •      * return 操作系统名称 例如:windows xp,linux 等.  
    •      */  
    •     public static String getOSName() {   
    •         return System.getProperty("os.name").toLowerCase();   
    •     }   
    •        
    •     /**  
    •      * 获取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;   
    •     }   
    •   
    •     /**  
    •      * 测试用的main方法.  
    •      *   
    •      * @param argc  
    •      *            运行参数.  
    •      */  
    •     public static void main(String[] argc) {   
    •         String os = getOSName();   
    •         System.out.println(os);   
    •         if(os.startsWith("windows")){   
    •             //本地是windows   
    •             String mac = getWindowsMACAddress();   
    •             System.out.println(mac);   
    •         }else{   
    •             //本地是非windows系统 一般就是unix   
    •             String mac = getUnixMACAddress();   
    •             System.out.println(mac);   
    •         }   
    •     }   
    • }  
  • 相关阅读:
    重载运算符强化2-返回值
    重载运算符强化--返回值
    重载运算符
    有名对象,匿名对象
    自定义jsp标签
    XML的解析
    DTD概述
    HashTable和HashMap区别
    同步与异步的概念
    List集合
  • 原文地址:https://www.cnblogs.com/hujunli90/p/2944412.html
Copyright © 2011-2022 走看看