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