修复域名检查时递归查询的问题

This commit is contained in:
GoEdgeLab
2021-01-05 14:10:11 +08:00
parent 34a32eafa2
commit 989e2924ed
5 changed files with 50 additions and 4 deletions

28
internal/utils/lookup.go Normal file
View File

@@ -0,0 +1,28 @@
package utils
import (
"github.com/miekg/dns"
)
// 获取CNAME
func LookupCNAME(host string) (string, error) {
config, err := dns.ClientConfigFromFile("/etc/resolv.conf")
if err != nil {
return "", err
}
c := new(dns.Client)
m := new(dns.Msg)
m.SetQuestion(host+".", dns.TypeCNAME)
m.RecursionDesired = true
r, _, err := c.Exchange(m, config.Servers[0]+":"+config.Port)
if err != nil {
return "", err
}
if len(r.Answer) == 0 {
return "", nil
}
return r.Answer[0].(*dns.CNAME).Target, nil
}