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);   
    •         }   
    •     }   
    • }  
  • 相关阅读:
    UVA 1515 Pool construction 最大流跑最小割
    BZOJ 1060: [ZJOI2007]时态同步 树形DP
    Codeforces Round #282 (Div. 1)B. Obsessive String KMP+DP
    BZOJ 4027: [HEOI2015]兔子与樱花 贪心
    BZOJ 2435: [Noi2011]道路修建 dfs搜图
    HDU 5297 Y sequence 容斥/迭代
    HDU 5296 Annoying problem dfs序 lca set
    HDU 5289 Assignment RMQ
    343D/Codeforces Round #200 (Div. 1) D. Water Tree dfs序+数据结构
    php mysqli扩展库之预处理操作
  • 原文地址:https://www.cnblogs.com/hujunli90/p/2944412.html
Copyright © 2011-2022 走看看