diff --git a/src/main/java/org/qortal/data/network/ArbitraryPeerData.java b/src/main/java/org/qortal/data/network/ArbitraryPeerData.java index 4185c390..30f8cf24 100644 --- a/src/main/java/org/qortal/data/network/ArbitraryPeerData.java +++ b/src/main/java/org/qortal/data/network/ArbitraryPeerData.java @@ -5,6 +5,9 @@ import org.qortal.crypto.Crypto; import org.qortal.network.Peer; import org.qortal.utils.NTP; +import java.net.InetAddress; +import java.net.UnknownHostException; + public class ArbitraryPeerData { private final byte[] hash; @@ -51,6 +54,17 @@ public class ArbitraryPeerData { return false; } + // Make sure that it's not a local address + try { + InetAddress addr = InetAddress.getByName(host); + if (addr.isLoopbackAddress() || addr.isLinkLocalAddress() || addr.isSiteLocalAddress()) { + // Ignore local addresses + return false; + } + } catch (UnknownHostException e) { + return false; + } + // Valid host/port combination return true; }