Files
2020-05-29 09:37:55 +00:00

32 lines
694 B
Go

package dns
import (
"net"
"github.com/miekg/dns"
)
// ReadResolveConfig retrieve resolvers from os
func ReadResolveConfig(configFile string) ([]string, error) {
var servers []string
conf, err := dns.ClientConfigFromFile(configFile)
if err != nil {
return servers, err
}
for _, nameserver := range conf.Servers {
if nameserver[0] == '[' && nameserver[len(nameserver)-1] == ']' {
nameserver = nameserver[1 : len(nameserver)-1]
}
if ip := net.ParseIP(nameserver); ip != nil {
nameserver = net.JoinHostPort(nameserver, defaultPort)
} else {
nameserver = dns.Fqdn(nameserver) + ":" + defaultPort
}
servers = append(servers, nameserver)
}
return servers, nil
}