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
To spoof the address go to Control Panel>Network Connections. Then right click on the connection you want to spoof and select properties. Now go to the advanced tab and click on Network Address. Then select the black box and type the MAC address you want to have.
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With