java使随机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地址是多播的”
我做错了什么
# 1 楼答案
解决了。。。我刚做了
# 2 楼答案
``
# 3 楼答案
如果最高有效地址八位字节的最低有效位设置为1,则帧仍将仅发送一次;但是,NIC将根据MAC地址匹配以外的标准选择接受它:例如,基于可配置的已接受多播MAC地址列表。这称为多播寻址