DNS-тип поиска SOA в GoLang - PullRequest
0 голосов
/ 05 мая 2019

Я очень новичок в GoLang. Итак, я должен сделать nslookup DNS, который я читаю из файла. Когда я делаю nslookup example-dns.com из моего терминала, я получаю все детали, такие как сервер, адрес и все записи, связанные с этим днс. Однако, когда я пытаюсь сделать то же самое с помощью кода (я использую следующую библиотеку: GoLang check-soa.go ), я получаю сообщение об ошибке Missing port number.

Поэтому я попытался использовать разные номера портов (53, 443 и т. Д. - не случайно, конечно), и я получаю ошибку No such host. И когда я пытаюсь nslookup example-dns.com:<port number> через терминал, я получаю ** server can't find example-dns:<port-number>: NXDOMAIN ошибка.

Я не уверен, что я пропускаю или делаю неправильно. Вот код:

    import (
    "github.com/miekg/dns"
    "fmt"
    // other imports
    )

    //other code ...

    func checkSOA() {
    str:="google.com:53"
    m := new(dns.Msg)
    m.SetQuestion(str, dns.TypeSOA)

    c := new(dns.Client)
    r, p, q := c.Exchange(m, str)
    fmt.Println("r is: ", r)
    fmt.Println("p is: ", p)
    fmt.Println("q is: ", q)

    if r != nil && r.Rcode != dns.RcodeSuccess {
        fmt.Println("Failed to get an valid answer")
        fmt.Println("%v\n", r)
    }
}
...