2011-03-30 41 views
0

我有一个Windows机器上的下面的代码:为什么java NetworkInterface.getHardwareAddress在Windows上返回空字节数组?

for(Enumeration enm = NetworkInterface.getNetworkInterfaces(); enm.hasMoreElements();){ 
    NetworkInterface network = (NetworkInterface) enm.nextElement(); 
    if(null != network.getHardwareAddress()){ 
     return EthernetAddress.valueOf(network.getHardwareAddress()); 
    } 
} 

失败的原因是network.getHardwareAddress()返回一个空的字节数组,而不是空在的Javadoc NetworkInterface的说明。有谁知道为什么会发生这种情况?

回答

2

我做到了这一点,并看到回送(首先apeared)没有mac地址。

我的猜测是,null适用于操作系统返回MAC不可用时。但它可能已经返回空数据。

在Linux上,它不会显示回送。

0

如果未连接到任何网络(LAN或WAN),则从network.getHardwareAddress()返回的字节数组为空,因此它将返回空值

相关问题