我实际上是在尝试打印部署了我的Web应用程序的计算机的mac addresses
。我在SO上看到了许多与mac
地址相关的问题,但我无法解决我的问题。到目前为止,我已尝试使用以下代码:
public static void main(String[] args) {
getMac();
}
public static void getMac() {
List<String> list = new ArrayList<String>();
try {
Enumeration<NetworkInterface> networks = NetworkInterface.getNetworkInterfaces();
while (networks.hasMoreElements()) {
NetworkInterface network = networks.nextElement();
byte[] mac = network.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) ? "-" : ""));
}
if (!(sb.length() == 0) && !list.contains(sb.toString())) {
if (!sb.toString().equals("00-00-00-00-00-00-00-E0")) {
list.add(sb.toString());
}
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
System.out.println("Mac Adresses List = " + list);
}
代码实际列出了包括虚拟适配器在内的所有网络接口mac地址。但是,我想知道是否有办法找出机器上存在的那些设备的mac地址。我看过this帖子,但它与java无关。我希望这些信息能够唯一地识别计算机(尽管这种方法存在局限性)。