diff --git a/htroot/CrawlStartScanner_p.java b/htroot/CrawlStartScanner_p.java index ece9f28d5..9fb02eb79 100644 --- a/htroot/CrawlStartScanner_p.java +++ b/htroot/CrawlStartScanner_p.java @@ -24,6 +24,7 @@ import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Collection; import java.util.ConcurrentModificationException; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.Map; @@ -94,14 +95,26 @@ public class CrawlStartScanner_p } else { ip = Domains.dnsResolve("192.168.0.1"); } - } else { - ip = Domains.myPublicLocalIP(); - if ( Domains.isThisHostIP(ip) ) { - ip = Domains.dnsResolve(sb.peers.mySeed().getIP()); + if ( ip != null ) { + hostSet.add(ip.getHostAddress()); } - } - if ( ip != null ) { - hostSet.add(ip.getHostAddress()); + } else { + final Set myPublicIPs = new HashSet(); + myPublicIPs.addAll(Domains.myPublicIPv4()); + myPublicIPs.addAll(Domains.myPublicIPv6()); + for(final InetAddress myPublicIP: myPublicIPs) { + if (Domains.isThisHostIP(myPublicIP)) { + final Set myIPs = sb.peers.mySeed().getIPs(); + for(final String myIP: myIPs) { + ip = Domains.dnsResolve(myIP); + if(ip != null) { + hostSet.add(ip.getHostAddress()); + } + } + } else { + hostSet.add(myPublicIP.getHostAddress()); + } + } } } String hos = ""; for (String s: hostSet) hos += s + "\n"; diff --git a/source/net/yacy/peers/Network.java b/source/net/yacy/peers/Network.java index be7d82b3c..ec2c6aadd 100644 --- a/source/net/yacy/peers/Network.java +++ b/source/net/yacy/peers/Network.java @@ -588,7 +588,7 @@ public class Network String logt; // be shure that we have something to say - if ( sb.peers.mySeed().getPublicAddress(sb.peers.mySeed().getIP()) == null ) { + if (sb.peers.mySeed().getIPs().isEmpty()) { final String errorMsg = "We have no valid IP address until now"; log.warn("SaveSeedList: " + errorMsg); return errorMsg; @@ -702,7 +702,10 @@ public class Network } finally { sb.peers.lastSeedUpload_seedDBSize = sb.peers.sizeConnected(); sb.peers.lastSeedUpload_timeStamp = System.currentTimeMillis(); - sb.peers.lastSeedUpload_myIP = sb.peers.mySeed().getIP(); + final Set myIPs = sb.peers.myIPs(); + if(!myIPs.isEmpty()) { + sb.peers.lastSeedUpload_myIP = myIPs.iterator().next(); + } } }