1 回答

TA贡献1812条经验 获得超5个赞
Go 的 LookupCNAME 函数尝试跟踪 CNAME 链直至其末尾。这意味着它认为没有 CNAME 和 A 记录的 DNS 名称是错误的:
规范名称是跟随零个或多个 CNAME 记录后的最终名称。如果主机不包含 DNS“CNAME”记录,只要主机解析为地址记录,LookupCNAME 就不会返回错误。
Go 在标准库中没有提供低级 DNS API。
package main
import (
"fmt"
"github.com/miekg/dns"
)
func main() {
config, _ := dns.ClientConfigFromFile("/etc/resolv.conf")
c := new(dns.Client)
m := new(dns.Msg)
// Note the trailing dot. miekg/dns is very low-level and expects canonical names.
m.SetQuestion("tst1crmapps.starbucks.com.", dns.TypeCNAME)
m.RecursionDesired = true
r, _, _ := c.Exchange(m, config.Servers[0]+":"+config.Port)
fmt.Println(r.Answer[0].(*dns.CNAME).Target) // bigip-tst1crmapps-starbucks.oracle.com.
}
- 1 回答
- 0 关注
- 131 浏览
添加回答
举报