回答

收藏

如何在 Go 中获取本地 IP 地址?

技术问答 技术问答 483 人阅读 | 0 人回复 | 2023-09-12

我想得到电脑 IP 地址。我用了下面的代码,但返回127.0.0.1.+ f" Y$ f. W& \; z' C, x' d
我想获取 IP 地址,如10.32.10.而非环回地址。+ k- \5 p# \6 ~% K
    name,err := os.Hostname()if err != nil      fmt.Printf("Oops: %v\n",err)     return}addrs,err := net.LookupHost(name)if err != nil    fmt.Printf("Oops: %v\n",err)    return}for _,a := range addrs    fmt.Println(a)}  
    # b, Q2 q3 k% C5 k, o
               
: W# A, z* X+ j* i; d    解决方案:                                                                * m* T! w- ~6 G' W0 W+ E# c
                                                                您需要遍历所有网络接口
5 K; u" W: b7 O5 o# q8 k+ W# V  a[code]ifaces,err := net.Interfaces()// handle errfor _,i := range ifaces    addrs,err := i.Addrs()    / handle err    for _,addr := range addrs        var ip net.IP        switch v := addr.(type)        case *net.IPNet:                ip = v.IP        case *net.IPAddr:                ip = v.IP        process IP address  code]
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则