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
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
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
", 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)