Linux下Java获取IP地址

 

在window下面可用如下代码:

 

Java代码 
  1. InetAddress inet = InetAddress.getLocalHost();  
  2. System.out.println("本机的ip=" + inet.getHostAddress());  
 


而在Linux下返回127.0.0.1。主要是在linux下返回的是/etc/hosts中配置的localhost的ip地址,而不是网卡的绑定地址。后来改用网卡的绑定地址,可以取到本机的ip地址:)

代码如下:

// 根据网卡取本机配置的IP
Enumeration<NetworkInterface> netInterfaces = null;
try {
	netInterfaces = NetworkInterface.getNetworkInterfaces();
	while (netInterfaces.hasMoreElements()) {
		NetworkInterface ni = netInterfaces.nextElement();
		System.out.println("DisplayName:" + ni.getDisplayName());
		System.out.println("Name:" + ni.getName());
		Enumeration<InetAddress> ips = ni.getInetAddresses();
		while (ips.hasMoreElements()) {
			System.out.println("IP:" + ips.nextElement().getHostAddress());
		}
	}
} catch (Exception e) {
	e.printStackTrace();
}
 

转载自:http://wjason.iteye.com/blog/206320

你可能感兴趣的:(java,linux,Blog)