func getIP() string { ifaces, err := net.Interfaces() if err != nil { f.Println(err) return "" } var strs []string for _, i := range ifaces { addrs, err := i.Addrs() if err != nil { f.Println(err) continue } for _, addr := range addrs { switch v := addr.(type) { case *net.IPNet: ip := v.IP strs = append(strs, ip.String()) case *net.IPAddr: // ip := v.IP // strs = append(strs, ip.String()) } } } for _, v := range strs { if strings.HasPrefix(v, "192.168.") { return v } } for _, v := range strs { if strings.HasPrefix(v, "10.") { return v } } for _, v := range strs { if strings.HasPrefix(v, "172.") { return v } } for _, v := range strs { if v != "127.0.0.1" && v != "::1" { return v } } return strs[0] }