package soundbox import ( "fmt" "net" ) // toLinkLocal converts a MAC address to the corresponding IPv6 link-local // address. func toLinkLocal(ha net.HardwareAddr) (net.IP, error) { switch len(ha) { case 6: ip := net.IP{0xfe, 0x80, 0, 0, 0, 0, 0, 0, ha[0] ^ 0b10, ha[1], ha[2], 0xff, 0xfe, ha[3], ha[4], ha[5]} return ip, nil default: return nil, fmt.Errorf("Only IEEE 802 MAC-48 addresses supported") } }