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
}