Based on based on miekg/dns.
- Uses provided dns servers array in random order
- Retries dns requests in case of i/o timeout
$ go get github.com/bogdanovich/dns_resolver
After this command dns_resolver is ready to use. Its source will be in:
$GOPATH/src/github.com/bogdanovich/dns_resolver
package main
import (
"log"
"github.com/bogdanovich/dns_resolver"
)
func main() {
resolver := dns_resolver.New([]string{"8.8.8.8", "8.8.4.4"})
// OR
// resolver := dns_resolver.NewFromResolvConf("resolv.conf")
// In case of i/o timeout
resolver.RetryTimes = 5
ip, err := resolver.LookupHost("google.com")
if err != nil {
log.Fatal(err.Error())
}
log.Println(ip)
// Output [216.58.192.46]
}