如何在java中获取以太网和wifi卡的mac?(只有2张卡)

如何在java中获取以太网和wifi卡的mac?(只有2张卡),java,Java,我想获得mac(许可证产品),但我收到的结果太多(如果我的英语不好,很抱歉): public void testGetMac()抛出SocketException{ 枚举接口=NetworkInterface.getNetworkInterfaces(); int i=0; while(interfaces.hasMoreElements()&&i

我想获得mac(许可证产品),但我收到的结果太多(如果我的英语不好,很抱歉):

public void testGetMac()抛出SocketException{
枚举接口=NetworkInterface.getNetworkInterfaces();
int i=0;
while(interfaces.hasMoreElements()&&i<3)
{
NetworkInterface nif=interfaces.nextElement();
字节[]lBytes=nif.getHardwareAddress();
StringBuffer lStringBuffer=新的StringBuffer();
如果(lBytes!=null)
{
for(字节b:lBytes)
{
追加(String.format(“%1$02X”,新字节(b));
}
i++;
}
System.out.println(lStringBuffer);
}
}

这就是我在应用程序中阅读MAC的方式。希望这有助于

InetAddress ip = InetAddress.getLocalHost();

        Enumeration e = NetworkInterface.getNetworkInterfaces();

        while (e.hasMoreElements()) {

            NetworkInterface n = (NetworkInterface) e.nextElement();
            Enumeration ee = n.getInetAddresses();
            while (ee.hasMoreElements()) {
                InetAddress i = (InetAddress) ee.nextElement();
                if (!i.isLoopbackAddress() && !i.isLinkLocalAddress()
                        && i.isSiteLocalAddress()) {
                    ip = i;
                }
            }
        }

        NetworkInterface network = NetworkInterface.getByInetAddress(ip);
        if(network == null){
            String message = "Check your internet connection!";
            JOptionPane.showMessageDialog(null, message,"Error", JOptionPane.ERROR_MESSAGE);
            return false;
        }
        byte[] address = network.getHardwareAddress();
“结果太多”是什么意思?你能给我们解释一下或者给我们看看你的电流输出吗?
InetAddress ip = InetAddress.getLocalHost();

        Enumeration e = NetworkInterface.getNetworkInterfaces();

        while (e.hasMoreElements()) {

            NetworkInterface n = (NetworkInterface) e.nextElement();
            Enumeration ee = n.getInetAddresses();
            while (ee.hasMoreElements()) {
                InetAddress i = (InetAddress) ee.nextElement();
                if (!i.isLoopbackAddress() && !i.isLinkLocalAddress()
                        && i.isSiteLocalAddress()) {
                    ip = i;
                }
            }
        }

        NetworkInterface network = NetworkInterface.getByInetAddress(ip);
        if(network == null){
            String message = "Check your internet connection!";
            JOptionPane.showMessageDialog(null, message,"Error", JOptionPane.ERROR_MESSAGE);
            return false;
        }
        byte[] address = network.getHardwareAddress();