From 7a15acd6330dd94c441b1f7c9028fd82c39d459b Mon Sep 17 00:00:00 2001 From: Dan Fuhry Date: Thu, 12 Sep 2024 00:46:25 -0400 Subject: [PATCH] dns: exclude 169.254.0.0/16 from lookup results, too --- net/dns/dns_cache.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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: -- 2.50.1