Ответ от / u / ga- c on reddit
Если я читаю, делайте c правильно (возможно, нет) .. .
Создайте себе локальный Resolver, используя пользовательский номеронабиратель, используя DNS-адрес, который вы хотите использовать (https://golang.org/pkg/net/#Resolver), затем используйте функцию LookupAddr этого Resolver?
edit:
package main
import (
"context"
"net"
"time"
)
func main() {
r := &net.Resolver{
PreferGo: true,
Dial: func(ctx context.Context, network, address string) (net.Conn, error) {
d := net.Dialer{
Timeout: time.Millisecond * time.Duration(10000),
}
return d.DialContext(ctx, "udp", "8.8.8.8:53")
},
}
ip, _ := r.LookupHost(context.Background(), "www.google.com")
print(ip[0])
}
Это похоже на работу - на моем брандмауэре это показывает, что моя машина открывает соединения с Google, а не локальный контроллер домена