Add 0.0.0.0 as local multicast source address
This commit is contained in:
@@ -28,21 +28,24 @@ func GetIPScope(ip net.IP) IPScope { //nolint:gocognit
|
|||||||
if ip4 := ip.To4(); ip4 != nil {
|
if ip4 := ip.To4(); ip4 != nil {
|
||||||
// IPv4
|
// IPv4
|
||||||
switch {
|
switch {
|
||||||
|
case ip4[0] == 0 && ip4[1] == 0 && ip4[2] == 0 && ip4[3] == 0:
|
||||||
|
// 0.0.0.0/32
|
||||||
|
return LocalMulticast // Used as source for L2 based protocols with no L3 addressing.
|
||||||
case ip4[0] == 0:
|
case ip4[0] == 0:
|
||||||
// 0.0.0.0/8
|
// 0.0.0.0/8
|
||||||
return Invalid
|
return Invalid
|
||||||
case ip4[0] == 127:
|
|
||||||
// 127.0.0.0/8 (RFC1918)
|
|
||||||
return HostLocal
|
|
||||||
case ip4[0] == 169 && ip4[1] == 254:
|
|
||||||
// 169.254.0.0/16 (RFC3927)
|
|
||||||
return LinkLocal
|
|
||||||
case ip4[0] == 10:
|
case ip4[0] == 10:
|
||||||
// 10.0.0.0/8 (RFC1918)
|
// 10.0.0.0/8 (RFC1918)
|
||||||
return SiteLocal
|
return SiteLocal
|
||||||
case ip4[0] == 100 && ip4[1]&0b11000000 == 64:
|
case ip4[0] == 100 && ip4[1]&0b11000000 == 64:
|
||||||
// 100.64.0.0/10 (RFC6598)
|
// 100.64.0.0/10 (RFC6598)
|
||||||
return SiteLocal
|
return SiteLocal
|
||||||
|
case ip4[0] == 127:
|
||||||
|
// 127.0.0.0/8 (RFC1918)
|
||||||
|
return HostLocal
|
||||||
|
case ip4[0] == 169 && ip4[1] == 254:
|
||||||
|
// 169.254.0.0/16 (RFC3927)
|
||||||
|
return LinkLocal
|
||||||
case ip4[0] == 172 && ip4[1]&0b11110000 == 16:
|
case ip4[0] == 172 && ip4[1]&0b11110000 == 16:
|
||||||
// 172.16.0.0/12 (RFC1918)
|
// 172.16.0.0/12 (RFC1918)
|
||||||
return SiteLocal
|
return SiteLocal
|
||||||
|
|||||||
Reference in New Issue
Block a user