[Linux]Java获取本机网卡IP地址
December 1st, 2016
No comments
应用程序服务器由Windows环境整体迁移到Linux环境,出现了不能获取本机IP地址的问题
原因是下面一段JAVA代码在Linux下直接返回127.0.0.1。Windows下有效的InetAddress貌似在linux下不起作用。
public static String getLocalIP() { String ip = ""; try { InetAddress address = InetAddress.getLocalHost(); if(address != null) { ip = address.getHostAddress(); } } catch (UnknownHostException e) { e.printStackTrace(); } return ip; } |
原因在于Java使用的JNI代码调用的是Linux中的gethostname内核函数
这个函数在Linux主机没有绑定IP的情况下根据Host文件定义返回默认的localhost或者127.0.0.1。
Read more…
Recent Comments