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

发表时间: 2023-01-02 15:47

常规运维脚本需要用到获取本机IP标识,下面是golang获取本机IP的一种方式

package mainimport(    "fmt"    "net")// Get preferred outbound ip of this machinefunc GetOutboundIP() (IP string, err error) {    conn, err := net.Dial("udp", "223.5.5.5:53") // 阿里云dns服务器地址    defer conn.Close()    localAddr := conn.LocalAddr().(*net.UDPAddr)    return localAddr.IP.String(), err}func main(){    addrs, err := net.InterfaceAddrs()    if err != nil{        fmt.Println(err)        return    }    for _, value := range addrs{        if ipnet, ok := value.(*net.IPNet); ok && !ipnet.IP.IsLoopback(){            if ipnet.IP.To4() != nil{                fmt.Println(ipnet.IP.String())            }        }    }    ip,_ := GetOutboundIP()    fmt.Println(ip)}