回答

收藏

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

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

我想得到电脑 IP 地址。我用了下面的代码,但返回127.0.0.1.7 o  l4 O" u% E1 F; ]4 ~
我想获取 IP 地址,如10.32.10.而非环回地址。
' ?; V) j: p4 m) I
    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)}  
    # [6 r: B& ]* ~  u% M' _
               . [# v4 F* a0 Y/ c8 }
    解决方案:                                                                2 O2 z4 t8 h* {6 _4 o
                                                                您需要遍历所有网络接口
6 k% o! ^) v' x9 Z. L; l7 i[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]
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则