in eureka-client/src/main/java/com/netflix/discovery/util/SystemUtil.java [37:59]
public static String getServerIPv4() {
String candidateAddress = null;
try {
Enumeration<NetworkInterface> nics = NetworkInterface.getNetworkInterfaces();
while (nics.hasMoreElements()) {
NetworkInterface nic = nics.nextElement();
Enumeration<InetAddress> inetAddresses = nic.getInetAddresses();
while (inetAddresses.hasMoreElements()) {
String address = inetAddresses.nextElement().getHostAddress();
String nicName = nic.getName();
if (nicName.startsWith("eth0") || nicName.startsWith("en0")) {
return address;
}
if (nicName.endsWith("0") || candidateAddress == null) {
candidateAddress = address;
}
}
}
} catch (SocketException e) {
throw new RuntimeException("Cannot resolve local network address", e);
}
return candidateAddress == null ? "127.0.0.1" : candidateAddress;
}