英文:
Generate MAC address in Go
问题
我正在寻找一个在Go语言中生成MAC地址的示例。我找到了很多关于创建UUID的示例,但没有关于MAC地址的。
有人可以帮忙吗?
谢谢,
Ben
英文:
I'm looking for an example on how to generate a MAC Address in Go.
I have found many examples on creating UUIDs but nothing on MAC addresses.
Can someone help?
Thanks,
Ben
答案1
得分: 15
这是我会做的方式(playground)
import (
"crypto/rand"
"fmt"
)
func main() {
buf := make([]byte, 6)
_, err := rand.Read(buf)
if err != nil {
fmt.Println("错误:", err)
return
}
// 设置本地位
buf[0] |= 2
fmt.Printf("随机MAC地址:%02x:%02x:%02x:%02x:%02x:%02x\n", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5])
}
请注意设置本地位,这意味着它不会与任何全局管理的地址冲突(详见维基百科了解更多信息)
英文:
Here is how I would do it (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])
}
Note the setting of the local bit which means it won't clash with any globally administered addresses (see wikipedia for more info)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论