给定以下代码:
// iptest
package main
import (
"fmt"
"net"
"os"
)
func main() {
host, _ := os.Hostname()
addrs, _ := net.LookupIP(host)
for _, addr := range addrs {
if ipv4 := addr.To4(); ipv4 != nil {
fmt.Println("IPv4: ", ipv4)
}
}
}
我遇到了一个问题,它只返回适配器分配的第一个IP地址。这似乎是仅在定义了DNS后缀的系统上出现的问题。如果没有定义,则可以正常工作并报告已分配的所有IP。
GODEBUG=netdns=1
命令来查看go net包所做的解析决策是否有任何有用的信息。 - JimB