在java中获取没有Internet连接的mac地址

时间:2017-07-23 22:46:20

标签: java

我有一大堆代码可以非常正确地返回PC的mac地址,但这只是在有互联网访问时,但我需要在我正在执行的项目中离线。如果不可能,有没有其他可能的方法来唯一识别PC?

1 个答案:

答案 0 :(得分:1)

您当然在代码段中使用基于IP地址的间接。这可以解释为什么当Internet网络访问中断时你没有得到任何东西。

以下是不依赖于网络连接状态的代码段。 它显示您PC的每个MAC地址。请注意,PC通常具有多个MAC地址。此代码段将显示每个地址。​​

package com.stackoverflow;

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

public class GetHWAddresses {
    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());
            }
        }
    }
}