Why golang Lookup*** function can't provide a server parameter?

后端 未结 5 1271
心在旅途
心在旅途 2020-12-14 18:11

For nslookup command, it has nslookup somewhere.com some.dns.server.

However, it seems that golang dnsclient only load config from /

5条回答
  •  青春惊慌失措
    2020-12-14 18:52

    @holys

    "github.com/miekg/dns is too heavy for me"

    It's not that heavy:

    package main
    
    import (
        "log"
    
        "github.com/miekg/dns"
    )
    
    func main() {
    
        target := "microsoft.com"
        server := "8.8.8.8"
    
        c := dns.Client{}
        m := dns.Msg{}
        m.SetQuestion(target+".", dns.TypeA)
        r, t, err := c.Exchange(&m, server+":53")
        if err != nil {
            log.Fatal(err)
        }
        log.Printf("Took %v", t)
        if len(r.Answer) == 0 {
            log.Fatal("No results")
        }
        for _, ans := range r.Answer {
            Arecord := ans.(*dns.A)
            log.Printf("%s", Arecord.A)
        }
    }
    

    When run, you should see:

    $ go run dns.go
    2015/07/26 00:24:46 Took 16.138928ms
    2015/07/26 00:24:46 134.170.188.221
    2015/07/26 00:24:46 134.170.185.46
    

提交回复
热议问题