// makeEndpointURL constructs a URL by determining the private IP address of // the host. func makeEndpointURL(listenIP string, listenPort int) (string, error) { if listenIP != "0.0.0.0" { return fmt.Sprintf("http://%v:%v", listenIP, listenPort), nil } privateIPs, err := iptools.GetPrivateHostIPs() if err != nil { return "", fmt.Errorf("failed to obtain host's private IPs: %v", err) } if len(privateIPs) == 0 { return "", errors.New("no host's private IPs are found") } return fmt.Sprintf("http://%v:%v", privateIPs[0], listenPort), nil }
// Construct an endpoint URL by determining the private IP address of the host. func makeEndpointURL(listenIP string, listenPort int) (string, error) { // if an app is listening on a specific IP, use it if listenIP != "0.0.0.0" { return fmt.Sprintf("http://%v:%v", listenIP, listenPort), nil } // otherwise find a private IP privateIPs, err := iptools.GetPrivateHostIPs() if err != nil { return "", fmt.Errorf("failed to obtain host's private IPs: %v", err) } if len(privateIPs) == 0 { return "", fmt.Errorf("no host's private IPs are found") } return fmt.Sprintf("http://%v:%v", privateIPs[0], listenPort), nil }