我想通过我提供的DNS服务器来解析给定的域。
我从https://play.golang.org/p/s2KtkFrQs7R获取的以下代码 结果给出了正确的结果-但是不幸的是,即使我将123.123.123.123:53之类的IP作为解析器IP ...
我想会有一个后备-但我找不到(https://golang.org/pkg/net/)来关闭它的开关...
在此先感谢您的提示...
Matthias
package main
import (
"context"
"fmt"
"log"
"net"
"time"
)
func GoogleDNSDialer(ctx context.Context, network, address string) (net.Conn, error) {
d := net.Dialer{}
return d.DialContext(ctx, "udp", "123.123.123.123:53")
}
func main() {
domain := "www.google.com"
const timeout = 1000 * time.Millisecond
ctx, cancel := context.WithTimeout(context.TODO(), timeout)
defer cancel()
// var r net.Resolver
r := net.Resolver{
PreferGo: true,
Dial: GoogleDNSDialer,
}
records, err := r.LookupHost(ctx, domain)
if err != nil {
log.Fatal(err)
} else {
fmt.Printf("Records %v \n", records[0])
}
}