From 0f61a07c769b70afaee351e246ce9a12ac08f296 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Thu, 22 Jul 2021 21:53:14 -0400 Subject: [PATCH] initial commit from their example Signed-off-by: Vincent Batts --- go.mod | 5 +++++ main.go | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 go.mod create mode 100644 main.go diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..78f8581 --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module git.thisco.de/vbatts/home0 + +go 1.16 + +require github.com/Focinfi/go-dns-resolver v1.0.0 diff --git a/main.go b/main.go new file mode 100644 index 0000000..b281074 --- /dev/null +++ b/main.go @@ -0,0 +1,39 @@ +package main + +import ( + "log" + + dns "github.com/Focinfi/go-dns-resolver" +) + +func main() { + domains := []string{"google.com", "twitter.com"} + types := []dns.QueryType{dns.TypeA, dns.TypeNS, dns.TypeMX, dns.TypeTXT} + + // Set timeout and retry times + dns.Config.SetTimeout(uint(2)) + dns.Config.RetryTimes = uint(4) + + // Simple usage + if results, err := dns.Exchange("google.com", "119.29.29.29", dns.TypeA); err == nil { + for _, r := range results { + log.Println(r.Record, r.Type, r.Ttl, r.Priority, r.Content) + } + } else { + log.Fatal(err) + } + + // Create and setup resolver with domains and types + resolver := dns.NewResolver("119.29.29.29") + resolver.Targets(domains...).Types(types...) + // Lookup + res := resolver.Lookup() + + //res.ResMap is a map[string]*ResultItem, key is the domain + for target := range res.ResMap { + log.Printf("%v: \n", target) + for _, r := range res.ResMap[target] { + log.Println(r.Record, r.Type, r.Ttl, r.Priority, r.Content) + } + } +}