强制使用解析器并禁用回退

时间:2018-08-20 18:13:57

标签: go

我想通过我提供的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])
    }

}

0 个答案:

没有答案
相关问题