【问题标题】:How to filter virtual adapters mac addresses in java?如何在java中过滤虚拟适配器mac地址?
【发布时间】:2014-08-18 11:22:56
【问题描述】:

我实际上是在尝试打印部署了我的 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 无关。我希望这些信息能够唯一地标识一台计算机(尽管这种方法存在局限性)。

【问题讨论】:

    标签: java mac-address


    【解决方案1】:

    network.isVirtual() 上的NetworkInterface 怎么样

    【讨论】:

    • 也没有运气尝试。感谢您的友好回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 2010-09-23
    • 2012-09-14
    • 2012-10-16
    • 1970-01-01
    相关资源
    最近更新 更多