mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 05:00:25 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			29 lines
		
	
	
		
			515 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			515 B
		
	
	
	
		
			Go
		
	
	
	
	
	
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
 | 
						|
}
 |