卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章34819本站已运行393

GoLang:net.LookupHost 返回重复的 ip

golang:net.lookuphost 返回重复的 ip

php小编西瓜今天要为大家介绍的是Go语言中的一个函数net.LookupHost,该函数在进行主机名解析时,可能会返回重复的IP地址。在实际应用中,这可能会导致一些问题,比如连接到同一台服务器多次。因此,我们需要了解这个问题的原因和解决办法,以确保代码的正确性和稳定性。在接下来的文章中,我们将详细解析这个问题,并提供相应的解决方案。敬请关注!

问题内容

我正在尝试运行 net.lookuphost 来获取运行我的代码的计算机的 ip 地址。它在大多数机器上工作,但在少数机器上,它返回一个包含两个条目的切片:正确的 ip 和具有相同 ip 的重复条目。

我尝试在主机上运行 nslookup,但它只返回一个条目。

将代码添加到问题中 -

hostname, _ := os.Hostname()

    ips, err := net.LookupHost(hostname)

    if err != nil {
            fmt.Printf("%dn", err.Error())
    }

    fmt.Printf("Hello, 世界 %#v n", ips)

    ips2, err := net.LookupIP(hostname)

    if err != nil {
            fmt.Printf("%dn", err.Error())
    }

    fmt.Printf("Hello, 世界 %#v n", ips2)

我期望 net.lookuphost 在响应中只给出一个条目,但它在响应中给出了两个相同的条目。

解决方法

看起来像是 DNS 解析问题。 如果它在其他服务器上工作,请尝试检查文件 /etc/hosts

系统首先查询 /etc/hosts 文件,然后查询 DNS 服务器。

来源:https://debian-handbook.info /browse/stable/sect.hostname-name-service.html

卓越飞翔博客
上一篇: 结构体切片!=它实现的接口切片?
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏