func localAddresses() []ma.Multiaddr { maddrs, err := manet.InterfaceMultiaddrs() if err != nil { die(err) } if !hideLoopback { return maddrs } var maddrs2 []ma.Multiaddr for _, a := range maddrs { if !manet.IsIPLoopback(a) { maddrs2 = append(maddrs2, a) } } return maddrs2 }
// InterfaceAddresses returns a list of addresses associated with local machine // Note: we do not return link local addresses. IP loopback is ok, because we // may be connecting to other nodes in the same machine. func InterfaceAddresses() ([]ma.Multiaddr, error) { maddrs, err := manet.InterfaceMultiaddrs() if err != nil { return nil, err } log.Debug("InterfaceAddresses: from manet:", maddrs) var out []ma.Multiaddr for _, a := range maddrs { if !AddrUsable(a, true) { // partial // log.Debug("InterfaceAddresses: skipping unusable:", a) continue } out = append(out, a) } log.Debug("InterfaceAddresses: usable:", out) return out, nil }