func anyInterfaceAddress()

in internal/network/network.go [143:166]


func anyInterfaceAddress(af string) (*net.IP, error) {
	interfaces, err := net.Interfaces()
	if err != nil {
		return nil, errors.Wrap(err, "net.Interfaces")
	}

	for _, iface := range interfaces {
		// Skip loopback
		if (iface.Flags & net.FlagLoopback) == net.FlagLoopback {
			continue
		}
		addrs, err := iface.Addrs()
		// Skip if error getting addresses
		if err != nil {
			return nil, errors.Wrapf(err, "error getting addresses for interface %s", iface.Name)
		}

		if len(addrs) > 0 {
			return interfaceAddress(af, iface.Name)
		}
	}

	return nil, err
}