首页 >后端开发 >Golang >如何在 Go 中指定自定义 DNS 服务器进行 DNS 查找?

如何在 Go 中指定自定义 DNS 服务器进行 DNS 查找?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-05 05:06:10763浏览

How to Specify a Custom DNS Server for DNS Lookups in Go?

Golang 中用于自定义 DNS 服务器规范的查找函数替代

Go 标准库目前不提供类似于 LookupTXT(name, dnsServer),允许用户在执行 DNS 查找时指定自定义 DNS 服务器。查找*。标准库中可用的功能仅依赖于 /etc/resolv.conf 中提供的配置。

如果您需要灵活地指定自定义 DNS 服务器,请考虑使用第三方库,例如 github.com/米克/DNS。该库提供了一组轻量级且全面的函数来执行 DNS 查找,包括指定自定义 DNS 服务器的功能。下面提供了使用 github.com/miekg/dns 通过自定义 DNS 服务器执行 DNS 查找的示例:

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)
    }
}

以上是如何在 Go 中指定自定义 DNS 服务器进行 DNS 查找?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn