package resolver import ( "context" "net" ) type SystemResolver struct { *net.Resolver } func NewSystemResolver() *SystemResolver { return &SystemResolver{ &net.Resolver{PreferGo: true}, } } func (r *SystemResolver) String() string { return "system resolver" } func (r *SystemResolver) Resolve(ctx context.Context, host string, _ []uint16) ([]net.IPAddr, error) { addrs, err := r.LookupIPAddr(ctx, host) if err != nil { return []net.IPAddr{}, err } return addrs, nil }