diff --git a/Network IPv4 Broadcast.go b/Network IPv4 Broadcast.go index bc48d54..946a1da 100644 --- a/Network IPv4 Broadcast.go +++ b/Network IPv4 Broadcast.go @@ -71,6 +71,11 @@ func (network *Network) BroadcastIPv4Listen() { continue } + // For good network practice (and reducing amount of parallel connections), do not allow link-local to talk to non-link-local addresses. + if sender.(*net.UDPAddr).IP.IsLinkLocalUnicast() != network.address.IP.IsLinkLocalUnicast() { + continue + } + //fmt.Printf("BroadcastIPv4Listen from %s at network %s\n", sender.String(), network.address.String()) if length < packetLengthMin { diff --git a/Network IPv6 Multicast.go b/Network IPv6 Multicast.go index eeae8e9..1437f37 100644 --- a/Network IPv6 Multicast.go +++ b/Network IPv6 Multicast.go @@ -117,6 +117,11 @@ func (network *Network) MulticastIPv6Listen() { continue } + // For good network practice (and reducing amount of parallel connections), do not allow link-local to talk to non-link-local addresses. + if sender.(*net.UDPAddr).IP.IsLinkLocalUnicast() != network.address.IP.IsLinkLocalUnicast() { + continue + } + //fmt.Printf("MulticastIPv6Listen from %s at network %s\n", sender.String(), network.address.String()) if length < packetLengthMin {