登录
首页 >  Golang >  Go问答

在本地地址分配过程中发生错误

来源:stackoverflow

时间:2024-03-01 12:48:25 231浏览 收藏

一分耕耘,一分收获!既然都打开这篇《在本地地址分配过程中发生错误》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

我正在尝试设置 http 请求的本地地址,如下所示:

localaddr, err := net.resolveipaddr("ip6", laddr)

if err != nil {
    log.fatal(err)
}

localtcpaddr := net.tcpaddr{
    ip: localaddr.ip,
}

client := &http.client{
    transport: &http.transport{
        proxy: http.proxyfromenvironment,
        dialcontext: (&net.dialer{
            localaddr: &localtcpaddr,
            timeout:   30 * time.second,
            keepalive: 30 * time.second,
            dualstack: true,
        }).dialcontext,
        maxidleconns:          100,
        idleconntimeout:       90 * time.second,
        tlshandshaketimeout:   10 * time.second,
        expectcontinuetimeout: 1 * time.second,
    },
}

供参考:laddr 变量如下所示:

2620:13a:c020:0016:1f7b:169c:846f:218a:49152

尝试发送请求时发生错误,错误如下: 2018/11/25 00:17:58查找2620:13a:c020:0016:1f7b:169c:846f:218a:49152:没有这样的主机。

我不确定是什么导致了这个错误。关于我的环境的一些详细信息:它是一个全新的 ubuntu vps,几乎没有安装任何东西。

编辑: 即使按照下面指出的那样删除端口,我仍然收到此错误: 拨打 tcp [2620:13a:c020:16:1f7b:169c:846f:218a]:0 ->[remoteip]:[remoteport] 绑定:无法分配请求的地址


解决方案


2620:13a:c020:0016:1f7b:169c:846f:218a:49152 不是有效的 ipv6 地址。您有一个额外的 49152,它甚至不是有效的 ipv6 十六进制。此 2620:13a:c020:0016:1f7b:169c:846f:218a 是有效的 ipv6 地址。

Validator

编辑

地址解析与建立连接不同。如果您想要建立连接而不是解析地址,那就需要端口了。

例如

net.Dial("tcp", "[2620:13a:c020:16:1f7b:169c:846f:218a]:49152")

今天关于《在本地地址分配过程中发生错误》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>