package resa.util; import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Enumeration; /** * Created by ding on 14-8-5. */ public class NetUtil { private static boolean isWindowsOS() { String osName = System.getProperty("os.name"); return osName.toLowerCase().indexOf("windows") > -1; } public static String getLocalIP() { String sIP = ""; InetAddress ip = null; try { if (isWindowsOS()) { ip = InetAddress.getLocalHost(); } else { boolean bFindIP = false; Enumeration<NetworkInterface> netInterfaces = (Enumeration<NetworkInterface>) NetworkInterface .getNetworkInterfaces(); while (netInterfaces.hasMoreElements()) { if (bFindIP) { break; } NetworkInterface ni = (NetworkInterface) netInterfaces .nextElement(); Enumeration<InetAddress> ips = ni.getInetAddresses(); while (ips.hasMoreElements()) { ip = ips.nextElement(); if (ip.isSiteLocalAddress() && !ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1) { bFindIP = true; break; } } } } } catch (Exception e) { e.printStackTrace(); } if (null != ip) { sIP = ip.getHostAddress(); } return sIP; } }