为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取分配给机器的所有 IP 地址?

如何获取分配给机器的所有 IP 地址?

Go
翻翻过去那场雪 2021-12-07 19:45:16
鉴于以下代码:// iptestpackage mainimport (    "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。
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

如果您正在尝试获取当前分配给机器的地址。我认为您应该考虑使用net.InterfaceAddrs()而不是尝试对主机名进行 DNS 查找。这是一个简短的示例,它将为您提供本地计算机上的所有 IP。


package main


import (

    "fmt"

    "net"

)


func main() {

    addrs, _ := net.InterfaceAddrs()

    fmt.Printf("%v\n", addrs)

    for _, addr := range addrs {

        fmt.Println("IPv4: ", addr)

    }

}


查看完整回答
反对 回复 2021-12-07
  • 1 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信