我尝试运行net.LookupHost来获取运行代码的机器的IP地址。它在大多数机器上都能工作,但在少数机器上,它返回一个包含两个条目的切片:正确的IP和具有相同IP的重复条目。
我尝试在主机上运行nslookup,但它只返回一个条目。
把代码加到问题里-
hostname, _ := os.Hostname()
ips, err := net.LookupHost(hostname)
if err != nil {
fmt.Printf("%d\n", err.Error())
}
fmt.Printf("Hello, 世界 %#v \n", ips)
ips2, err := net.LookupIP(hostname)
if err != nil {
fmt.Printf("%d\n", err.Error())
}
fmt.Printf("Hello, 世界 %#v \n", ips2)
我期望net.LookupHost在响应中只给予一个条目,但它在响应中给出了两个相同的条目。
1条答案
按热度按时间7vux5j2d1#
看起来像是DNS解析问题。如果它在其他服务器上工作,请尝试 checkout 文件
/etc/hosts
。系统首先查询/etc/hosts文件,然后查询DNS服务器。
来源:https://debian-handbook.info/browse/stable/sect.hostname-name-service.html