报告使用 fmt.Sprintf("%s:%d", host, port) 或 fmt.Sprintf("%s:%s", host, port) 构建的地址。
对于 IPv6 主机,这种模式会中断,因为 IPv6 地址必须用中括号括起来,如 [host]:port。 net.JoinHostPort 会为 IPv4 和 IPv6 正确设置地址格式。
示例:
addr := fmt.Sprintf("%s:%d", host, port)
return net.Dial("tcp", addr)
要修正代码,请使用替换为 net.JoinHostPort 快速修复。
在应用快速修复后:
addr := net.JoinHostPort(host, fmt.Sprintf("%d", port))
return net.Dial("tcp", addr)