我在Windows机器上有以下代码:
for(Enumeration enm = NetworkInterface.getNetworkInterfaces(); enm.hasMoreElements();){
NetworkInterface network = (NetworkInterface) enm.nextElement();
if(null != network.getHardwareAddress()){
return EthernetAddress.valueOf(network.getHardwareAddress());
}
}
这会失败,因为network.getHardwareAddress()返回一个空字节数组,而不是如NetworkInterface的javadoc中所述的null。有谁知道为什么会这样?
答案 0 :(得分:2)
我这样做了,看到环回(首先是apeared)没有mac地址。
我的猜测是null
用于当OS返回MAC不可用时。但是它可能会返回空数据。
在Linux上,它没有向我显示环回。
答案 1 :(得分:0)
如果未连接到任何网络(LAN或WAN),则从network.getHardwareAddress()返回的字节数组将变为null,因此它返回空值