code: 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;
      }
  }
  