如何在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)}