diff --git a/apollo-core/src/main/java/com/ctrip/framework/foundation/internals/NetworkInterfaceManager.java b/apollo-core/src/main/java/com/ctrip/framework/foundation/internals/NetworkInterfaceManager.java index 2581c1e1e84f3a3ac25217f9750cd06c1acd78e8..66c0d3678d2f5746b7b9ba17482e73f5b82c0f35 100644 --- a/apollo-core/src/main/java/com/ctrip/framework/foundation/internals/NetworkInterfaceManager.java +++ b/apollo-core/src/main/java/com/ctrip/framework/foundation/internals/NetworkInterfaceManager.java @@ -98,8 +98,12 @@ public enum NetworkInterfaceManager { try { Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); - List nis = interfaces == null ? Collections.emptyList() - : Collections.list(NetworkInterface.getNetworkInterfaces()); + List nis; + if (interfaces == null) { + nis = Collections.emptyList(); + } else { + nis = Collections.list(NetworkInterface.getNetworkInterfaces()); + } List addresses = new ArrayList(); InetAddress local = null; @@ -113,9 +117,14 @@ public enum NetworkInterfaceManager { } catch (Exception e) { // ignore } - m_local = local; + if (local != null) { + m_local = local; + return; + } } catch (SocketException e) { // ignore it } + + m_local = InetAddress.getLoopbackAddress(); } }