这是我的简易MAC地址生成器:
请注意我如何设置和取消位以生成单播mac地址。然而,它并没有起作用,我的自动程序接受mac地址时返回了一个错误,因为“这个mac地址是多播的”。 我做错了什么?
private String randomMACAddress(){
Random rand = new Random();
byte[] macAddr = new byte[6];
rand.nextBytes(macAddr);
StringBuilder sb = new StringBuilder(18);
for(byte b : macAddr){
if(sb.length() > 0){
sb.append(":");
}else{ //first byte, we need to set some options
b = (byte)(b | (byte)(0x01 << 6)); //locally adminstrated
b = (byte)(b | (byte)(0x00 << 7)); //unicast
}
sb.append(String.format("%02x", b));
}
return sb.toString();
}
请注意我如何设置和取消位以生成单播mac地址。然而,它并没有起作用,我的自动程序接受mac地址时返回了一个错误,因为“这个mac地址是多播的”。 我做错了什么?