From c8f41b110ed20a65deb0b75d1081cee4552585fa Mon Sep 17 00:00:00 2001 From: Opensourcecommunitydevelopment Date: Mon, 31 Jul 2017 22:46:21 +0200 Subject: [PATCH 1/2] Google DNS: try to lookup the closest IPv6 server --- gdns.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gdns.go b/gdns.go index 32d4d13..1536bf9 100644 --- a/gdns.go +++ b/gdns.go @@ -20,6 +20,7 @@ type Gdns struct { workers *int server *string auto *bool + auto6 *bool sni *string host *string edns *string @@ -34,6 +35,8 @@ func (r *Gdns) Init() { "Google DNS: server address") r.auto = flag.Bool("gdns:auto", false, "Google DNS: try to lookup the closest IPv4 server") + r.auto6 = flag.Bool("gdns:auto6", false, + "Google DNS: try to lookup the closest IPv6 server") r.sni = flag.String("gdns:sni", "www.google.com", "Google DNS: SNI string to send (should match server certificate)") r.host = flag.String("gdns:host", "dns.google.com", @@ -56,6 +59,13 @@ func (R *Gdns) Start() { R.server = &r4.Answer[0].Data } } + if *R.auto6 { + dbg(1, "resolving dns.google.com...") + r6 := R.resolve(NewHttps(*R.sni, false), *R.server, "dns.google.com", 28) + if r6.Status == 0 && len(r6.Answer) > 0 { + R.server = &r6.Answer[0].Data + } + } dbg(1, "starting %d Google Public DNS client(s) querying server %s", *R.workers, *R.server) From f26303981e9462889e97849c5215118127549db5 Mon Sep 17 00:00:00 2001 From: Opensourcecommunitydevelopment Date: Mon, 31 Jul 2017 22:48:39 +0200 Subject: [PATCH 2/2] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f945500..a44068f 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,8 @@ Usage of dingo-linux-amd64: debugging level (default 2) -gdns:auto Google DNS: try to lookup the closest IPv4 server + -gdns:auto6 + Google DNS: try to lookup the closest IPv6 server -gdns:edns string Google DNS: EDNS client subnet (set 0.0.0.0/0 to disable) -gdns:host string