public class OSUtil { private final static String OS_WINDOWS = "windows"; /** * 判断当前操作是否Windows. * * @return true---是Windows操作系统 */ public static boolean isWindowsOS() { boolean isWindowsOS = false; String osName = System.getProperty("os.name"); if (osName.toLowerCase().contains(OS_WINDOWS)) { isWindowsOS = true; } return isWindowsOS; } /** * 获取本机IP地址,并自动区分Windows还是Linux操作系统 * * @return String */ public static String getLocalIP() { String sIP = ""; InetAddress ip = null; try { // 如果是Windows操作系统 if (isWindowsOS()) { ip = InetAddress.getLocalHost(); } // 如果是Linux操作系统 else { boolean bFindIP = false; Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces(); while (netInterfaces.hasMoreElements()) { if (bFindIP) { break; } NetworkInterface ni = netInterfaces.nextElement(); // ----------特定情况,可以考虑用ni.getName判断 // 遍历所有ip Enumeration<InetAddress> ips = ni.getInetAddresses(); while (ips.hasMoreElements()) { ip = ips.nextElement(); // 127.开头的都是 look back 地址 if (ip.isSiteLocalAddress() && !ip.isLoopbackAddress() && !ip.getHostAddress().contains(":")) { bFindIP = true; break; } } } } } catch (Exception e) { } if (null != ip) { sIP = ip.getHostAddress(); } return sIP; } }