1、获取本地IP(有可能是 内网IP,192.168.xxx.xxx)
/** * 获取本地IP * * @return */ public static String getLocalIpAddress() { try { Enumeration<networkinterface> en = NetworkInterface .getNetworkInterfaces(); while (en.hasMoreElements()) { NetworkInterface ni = en.nextElement(); Enumeration<inetaddress> enIp = ni.getInetAddresses(); while (enIp.hasMoreElements()) { InetAddress inet = enIp.nextElement(); if (!inet.isLoopbackAddress() && (inet instanceof Inet4Address)) { return inet.getHostAddress().toString(); } } } } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } return "0"; }</inetaddress></networkinterface>
2.获取网络ip,比上述方法更加精确,但是要异步执行。
public class GetLocalHostIP implements Callable<String>{ private GetLocalHostIP(){ super(); } public static String getIP(){ ExecutorService executorService = Executors.newCachedThreadPool(); Future<String> localIP = executorService.submit(new GetLocalHostIP()); String ip = null; try { ip = localIP.get(); }catch (InterruptedException e){ e.printStackTrace();