在Go中生成MAC地址

Shy*_*rka 8 go

我正在寻找一个如何在Go中生成MAC地址的示例.我发现了许多关于创建UUID但没有关于MAC地址的例子.

有人可以帮忙吗?

谢谢,本

Nic*_*ood 11

我就是这样做的(游乐场)

import (
    "crypto/rand"
    "fmt"
)

func main() {
    buf := make([]byte, 6)
    _, err := rand.Read(buf)
    if err != nil {
        fmt.Println("error:", err)
        return
    }
    // Set the local bit
    buf[0] |= 2
    fmt.Printf("Random MAC address: %02x:%02x:%02x:%02x:%02x:%02x\n", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5])
}
Run Code Online (Sandbox Code Playgroud)

请注意本地位的设置,这意味着它不会与任何全局管理的地址发生冲突(有关详细信息,请参阅维基百科)

  • `buf [0] =(buf [0] | 2)&0xfe //设置本地位,确保单播地址`在大多数情况下,你需要将最低位设置为零,确保你有单播地址,而不是多播地址. (3认同)