netbeans 如何在离线状态下通过java获取MAC地址

zengzsys  于 2022-11-10  发布在  Java
关注(0)|答案(1)|浏览(181)

我试图在不连接到互联网的情况下获得我的PC的MAC地址,我使用了以下代码

InetAddress ip;
try {
    ip = InetAddress.getLocalHost(); 

    NetworkInterface network = NetworkInterface.getByInetAddress(ip);

    byte[] mac = network.getHardwareAddress();

    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < mac.length; i++) {
        sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));        
    }
            System.out.println(sb.toString());

} catch (UnknownHostException | SocketException e) {
}

当我的电脑连接到互联网时它工作,但当我离线时它不工作。

thtygnil

thtygnil1#

这里是获得Mac地址为您的PC的代码,即使它没有连接到互联网:

public static void main(String[] args) throws SocketException {
final Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
    while (e.hasMoreElements()) {
        final byte [] mac = e.nextElement().getHardwareAddress();
        if (mac != null) {
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < mac.length; i++)
                sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
            System.out.println(sb.toString());
        }
    }
}

注意:许多计算机也有多个Mac地址。因此这可能会返回多个Mac地址

相关问题