add dns module

This commit is contained in:
xvzc 2022-01-10 23:20:23 +09:00
parent a619dc2ad1
commit 7f68c38c7b

36
dns/dns.go Normal file
View File

@ -0,0 +1,36 @@
package dns
import (
"sync"
"github.com/babolivier/go-doh-client"
)
var resolver *doh.Resolver
var once sync.Once
func Init(dns string) {
getInstance().Host = dns
}
func LookupOverHttps(domain string) (string, error) {
a, _, err := resolver.LookupA(domain)
if err != nil {
return "", err
}
ip := a[0].IP4
return ip, nil
}
func getInstance() *doh.Resolver {
once.Do(func() {
resolver = &doh.Resolver{
Host: "",
Class: doh.IN,
}
})
return resolver
}