diff --git a/p2p/enode/node.go b/p2p/enode/node.go index d7a1a9a1561c..1d5e6202b919 100644 --- a/p2p/enode/node.go +++ b/p2p/enode/node.go @@ -106,11 +106,20 @@ func (n *Node) IP() net.IP { ip6 enr.IPv6 ) if n.Load(&ip4) == nil { - return net.IP(ip4) + ipv4Addr := net.IP(ip4) + if !ipv4Addr.IsLoopback() { + return ipv4Addr + } } if n.Load(&ip6) == nil { return net.IP(ip6) } + if n.Load(&ip4) == nil { + ipv4Addr := net.IP(ip4) + if ipv4Addr.IsLoopback() { + return ipv4Addr + } + } return nil }