Java - springboot获取电脑mac地址

2022-10-11 09:46:49

1.mac工具类

import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
import java.util.Locale;

public class LocalMACUtil {

    /**
     * 本机MAC地址
     * @return
     */
    public static String getLocalMac(){
        StringBuilder mac = new StringBuilder("");
        try {
            Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
            while (networkInterfaces.hasMoreElements()){
                NetworkInterface networkInterface = networkInterfaces.nextElement();
                //过滤其他网卡
                if (networkInterface.isVirtual()||networkInterface.isLoopback()||networkInterface.isPointToPoint() || !networkInterface.isUp()){
                    continue;
                }
                String displayName = networkInterface.getDisplayName();
                if (displayName.contains("VMware Virtual")){
                    continue;
                }
                //获取解析网关
                byte[] hardwareAddress =  networkInterface.getHardwareAddress();

                for(int i=0; i<hardwareAddress.length; i++) {
                    if(i!=0) {
                        mac.append("-");
                    }
                    //字节转换为整数
                    int temp = hardwareAddress[i]&0xff;
                    String str = Integer.toHexString(temp);
                    if(str.length()==1) {
                        mac.append("0").append(str);
                    }else {
                        mac.append(str);
                    }
                }
                break;
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
        return String.valueOf(mac).toUpperCase(Locale.ROOT);
    }
}

2.输出结果

  • 作者:多汁多味
  • 原文链接:https://blog.csdn.net/weixin_43652507/article/details/122292901
    更新时间:2022-10-11 09:46:49