import java.net.*; import java.util.*; public class GetLocalIP { public static String getLocalIP() throws Exception { NetworkInterface localInf = null; InetAddress localAddr = null; Enumeration infs = NetworkInterface.getNetworkInterfaces(); while (infs.hasMoreElements()) { NetworkInterface inf = infs.nextElement(); Enumeration addresses = inf.getInetAddresses(); while (addresses.hasMoreElements()) { InetAddress addr = addresses.nextElement(); if (addr instanceof Inet4Address) { if (inf.getName().startsWith("tunl")) continue; if (addr.isLoopbackAddress()) continue; if (addr.isSiteLocalAddress()) { System.out.println(String.format("interface %s ip is %s", inf.getName(), addr.getHostAddress())); return addr.getHostAddress(); } localInf = inf; localAddr = addr; } } } if (localInf != null) { System.out.println(String.format("interface %s ip is %s", localInf.getName(), localAddr.getHostAddress())); return localAddr.getHostAddress(); } else { System.out.println("get local ip failed"); return null; } } public static void main( String[] args ) throws Exception { getLocalIP(); } }