回答

收藏

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

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

我想得到电脑 IP 地址。我用了下面的代码,但返回127.0.0.1.
8 }! E6 X- p' j0 [( n- z# Q我想获取 IP 地址,如10.32.10.而非环回地址。' {5 _! t* q' O; K  H& \8 ]
    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)}  
    " ?. T: ^/ o; T# }9 N( L  F0 ]
               4 F  Q' n' h6 U# y  c
    解决方案:                                                               
- M) _5 n% C3 n$ U( f- w                                                                您需要遍历所有网络接口
! T+ Y2 j, v, L" _[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]
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则