0


Golang 获取本地 IP 地址方法

在 Golang 中,使用 net 包可以很方便地获取到本机IP地址。

借助 net.InterfaceAddrs 方法

简单示例代码如下:

package main

import (
    "fmt"
    "net"
)

func main() {
    addrList, err := net.InterfaceAddrs()
    if err != nil {
        panic(err)
    }
    for _, address := range addrList {
        if ipNet, ok := address.(*net.IPNet); ok && !ipNet.IP.IsLoopback() {
            if ipNet.IP.To4() != nil {
                fmt.Println(ipNet.IP.String())
            }
        }
    }
}

借助 net.Dial 方法

使用 udp 不需要关注是否送达,只需要对应的 ip 和 port 正确,即可获取到 IP 地址。简单示例代码如下:

package main

import (
    "fmt"
    "net"
    "strings"
)

func main() {
    conn, err := net.Dial("udp", "8.8.8.8:53")
    if err != nil {
        panic(err)
    }
    addr := conn.LocalAddr().(*net.UDPAddr)
    ip := strings.Split(addr.String(), ":")[0]
    fmt.Println(ip)
}

本文转载自: https://blog.csdn.net/luduoyuan/article/details/131927822
版权归原作者 路多辛 所有, 如有侵权,请联系我们删除。

“Golang 获取本地 IP 地址方法”的评论:

还没有评论