func discoverNetworkAddresses() ([]string, error) {
	var results []string
	ifaces, err := net.Interfaces()
	if err != nil {
		return nil, err
	}
	for _, iface := range ifaces {
		if iface.Flags&net.FlagUp == 0 {
			continue // interface down
		}
		if iface.Flags&net.FlagLoopback != 0 {
			continue // loopback interface
		}
		addrs, err := iface.Addrs()
		if err != nil {
			return nil, err
		}
		for _, addr := range addrs {
			var ip net.IP
			switch v := addr.(type) {
			case *net.IPNet:
				ip = v.IP
			case *net.IPAddr:
				ip = v.IP
			}
			if ip == nil || ip.IsLoopback() {
				continue
			}
			ip = ip.To4()
			if ip == nil {
				continue // not an ipv4 address
			}
			results = append(results, ip.String())
		}
	}
	return results, nil
}
// Returns a list of net addresses by inspecting the network interfaces on the current host.
Returns a list of net addresses by inspecting the network interfaces on the current host.
// Returns a list of net addresses by inspecting the network interfaces on the current host .
func discoverNetworkAddresses() ([]string, error) {
	var results []string
	ifaces, err := net.Interfaces()
	if err != nil {
		return nil, err
	}
	for _, iface := range ifaces {
		if iface.Flags&net.FlagUp == 0 {
			continue 
		}
		if iface.Flags&net.FlagLoopback != 0 {
			continue 
		}
		addrs, err := iface.Addrs()
		if err != nil {
			return nil, err
		}
		for _, addr := range addrs {
			var ip net.IP
			switch v := addr.(type) {
			case *net.IPNet:
				ip = v.IP
			case *net.IPAddr:
				ip = v.IP
			}
			if ip == nil || ip.IsLoopback() {
				continue
			}
			ip = ip.To4()
			if ip == nil {
				continue 
			}
			results = append(results, ip.String())
		}
	}
	return results, nil
}
func discoverNetworkAddresses ( ) ( [ ] string , error ) { var results [ ] string ifaces , err := net . Interfaces ( ) if err != nil { return nil , err } for _ , iface := range ifaces { if iface . Flags & net . FlagUp == 0 { continue } if iface . Flags & net . FlagLoopback != 0 { continue } addrs , err := iface . Addrs ( ) if err != nil { return nil , err } for _ , addr := range addrs { var ip net . IP switch v := addr . ( type ) { case * net . IPNet : ip = v . IP case * net . IPAddr : ip = v . IP } if ip == nil || ip . IsLoopback ( ) { continue } ip = ip . To4 ( ) if ip == nil { continue } results = append ( results , ip . String ( ) ) } } return results , nil }
Returns a list of net addresses by inspecting the network interfaces on the current host.
Returns a list of net addresses by inspecting the network interfaces on the current host .
// interface down // loopback interface // not an ipv4 address