在Go中生成MAC地址

时间:2014-01-09 11:19:19

标签: go

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

有人可以帮忙吗?

谢谢, 本

1 个答案:

答案 0 :(得分:9)

我会这样做(playground

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])
}

请注意本地位的设置,这意味着它不会与任何全局管理的地址冲突(see wikipedia for more info