From: Dan Fuhry Date: Thu, 12 Sep 2024 04:46:25 +0000 (-0400) Subject: dns: exclude 169.254.0.0/16 from lookup results, too X-Git-Url: https://go.fuhry.dev/?a=commitdiff_plain;h=7a15acd6330dd94c441b1f7c9028fd82c39d459b;p=runtime.git dns: exclude 169.254.0.0/16 from lookup results, too --- diff --git a/net/dns/dns_cache.go b/net/dns/dns_cache.go index 0270b0d..4700e5b 100644 --- a/net/dns/dns_cache.go +++ b/net/dns/dns_cache.go @@ -23,6 +23,11 @@ var loopbackIPv4 = net.IPNet{ Mask: net.IPMask{255, 0, 0, 0}, } +var autoPrivateIPv4 = net.IPNet{ + IP: net.IP{169, 254, 0, 0}, + Mask: net.IPMask{255, 255, 0, 0}, +} + var localIPv6 = net.IPNet{ IP: net.IP{ 0xfe, 0x80, 0x00, 0x00, @@ -69,7 +74,7 @@ func ResolveDualStack(hostname string) (string, string, error) { for _, rr := range msg.Answer { switch a := rr.(type) { case *dns.A: - if !loopbackIPv4.Contains(a.A) { + if !loopbackIPv4.Contains(a.A) && !autoPrivateIPv4.Contains(a.A) { ip4 = a.A.String() } case *dns.AAAA: