天天看點

java擷取本地mac位址

如何用java代碼擷取本地mac位址呢?

我們可以通過cmd指令:ipconfig -all  來檢視我們電腦上的mac位址是多少。

目錄

​​一、自定義方法擷取本地mac位址​​

​​二、利用第三方工具類擷取本地mac位址​​

​​三、兩種方法程式運作結果​​

一、自定義方法擷取本地mac位址

/**
     * 擷取本地mac位址
     * 注意:實體位址是48位,别和ipv6搞錯了
     * @param inetAddress
     * @return 本地mac位址
     */
    private static String getLocalMac(InetAddress inetAddress) {
        try {
            //擷取網卡,擷取位址
            byte[] mac = NetworkInterface.getByInetAddress(inetAddress).getHardwareAddress();
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < mac.length; i++) {
                if (i != 0) {
                    sb.append("-");
                }
                //位元組轉換為整數
                int temp = mac[i] & 0xff;
                String str = Integer.toHexString(temp);
                if (str.length() == 1) {
                    sb.append("0" + str);
                } else {
                    sb.append(str);
                }
            }
            return sb.toString();
        } catch (Exception exception) {
        }
        return null;
    }      

二、利用第三方工具類擷取本地mac位址

<dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.19</version>
        </dependency>      
InetAddress inetAddress = InetAddress.getLocalHost();
        //第二種方式:利用hutool工具類中的封裝方法擷取本機mac位址
        String localMacAddress2 = NetUtil.getMacAddress(inetAddress);
        System.out.println("localMacAddress2 = " + localMacAddress2);      

三、兩種方法程式運作結果

public static void main(String[] args) throws UnknownHostException {
        InetAddress inetAddress = InetAddress.getLocalHost();

        //第一種方式:利用自己寫的方法擷取本地mac位址
        String localMacAddress1 = getLocalMac(inetAddress);
        System.out.println("localMacAddress1 = " + localMacAddress1);
        
        //第二種方式:利用hutool工具類中的封裝方法擷取本機mac位址
        String localMacAddress2 = NetUtil.getMacAddress(inetAddress);
        System.out.println("localMacAddress2 = " + localMacAddress2);
    }