Awesome
dnsr
Iterative DNS resolver for Go.
The Resolve
method on dnsr.Resolver
queries DNS for given name and type (A
, NS
, CNAME
, etc.). The resolver caches responses for queries, and liberally (aggressively?) returns DNS records for a given name, not waiting for slow or broken name servers.
This code leans heavily on Miek Gieben’s excellent DNS library, and is currently in production use at Domainr.
Install
go get github.com/domainr/dnsr
Usage
package main
import (
"fmt"
"github.com/domainr/dnsr"
)
func main() {
r := dnsr.NewResolver(dnsr.WithCache(10000))
for _, rr := range r.Resolve("google.com", "TXT") {
fmt.Println(rr.String())
}
}
Or construct with dnsr.NewResolver(dnsr.WithExpiry())
to expire cache entries based on TTL.
Development
Run go generate
in Go 1.4+ to refresh the root zone hint file. Pull requests welcome.
Copyright
© nb.io, LLC