package main import ( "fmt" "net" "os/exec" "strings" ) var isLocalCIDR = "127.0.0.1/8" func isLocal(addr string) bool { if strings.Contains(isLocalCIDR, ",") { for _, cidr := range strings.Split(isLocalCIDR, ",") { _, localNet, err := net.ParseCIDR(cidr) if err != nil { panic(err) } if localNet.Contains(net.ParseIP(strings.Split(addr, ":")[0])) { return true } } return false } else { _, localNet, err := net.ParseCIDR(isLocalCIDR) if err != nil { panic(err) } return localNet.Contains(net.ParseIP(strings.Split(addr, ":")[0])) } } // Allows the shareLink to be overridden instead of relying on autodetect var shareLink = "" func getShareLink() string { if shareLink != "" { return shareLink } return fmt.Sprintf("http://%s:%s/", GetHostIP(), getPort()) } func getPort() string { s := strings.Split(Listen, ":") if len(s) != 2 { return Listen } return s[1] } // startBrowser runs the BrowserCommand func which just returns a []string // containing our URL that varies based on each platform func startBrowser(url string) { command := BrowserCommand(url) c := exec.Command(command[0], command[1:]...) Logger.Printf("Running command: %s result: %v", command, c.Run()) return }