diff --git a/src/net/dial.go b/src/net/dial.go index 85ec557575..4bdecf75a5 100644 --- a/src/net/dial.go +++ b/src/net/dial.go @@ -419,7 +419,14 @@ func (d *Dialer) DialContext(ctx context.Context, network, address string) (Conn resolveCtx = context.WithValue(resolveCtx, nettrace.TraceKey{}, &shadow) } - addrs, err := d.resolver().resolveAddrList(resolveCtx, "dial", network, address, d.LocalAddr) + networkForResolve := network + switch network { + case "tcp", "udp": + if !supportsIPv6() { + networkForResolve = network + "4" + } + } + addrs, err := d.resolver().resolveAddrList(resolveCtx, "dial", networkForResolve, address, d.LocalAddr) if err != nil { return nil, &OpError{Op: "dial", Net: network, Source: nil, Addr: nil, Err: err} }