1、問題:之前使用InetAddress.getLocalHost().getHostAddress()時,在開發機測試可以得到192.168.0.18這樣的IP。但部署到linux服務器以后,
這個值卻變成了127.0.0.1,如何得到真正的IP地址?
2、方案:
public static InetAddress getCurrentIp() { try { Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces(); while (networkInterfaces.hasMoreElements()) { NetworkInterface ni = (NetworkInterface) networkInterfaces.nextElement(); Enumeration<InetAddress> nias = ni.getInetAddresses(); while (nias.hasMoreElements()) { InetAddress ia = (InetAddress) nias.nextElement(); if (!ia.isLinkLocalAddress() && !ia.isLoopbackAddress() && ia instanceof Inet4Address) { return ia; } } } } catch (SocketException e) { } return null; }