获取本机所有IP地址的方法

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

获取本机所有IP地址的方法

java.net包中的IP地址类InetAddress提供了可以获取本机IP地址的方法getLocalHost(),但是通过该方法只能获得第一个网络设备的IP地址。但是InetAddress提供了getAllByName(String host),可以通过主机名获取所有IP地址。下面就是获取本机所有IP地址的源码。

/*

* NetTools.java

* Created on 2004-9-29

* Copyright:

*/

import java.net.InetAddress;

/**

* @author yanpeng

*

*

*/

public class NetTools {

public static String getLocalHostIP(){

String ip;

try{

InetAddress addr = InetAddress.getLocalHost();

ip = addr.getHostAddress();

}

catch(Exception ex){

ip = "";

}

return ip;

}

public static String getLocalHostName(){

String hostName;

try{

InetAddress addr = InetAddress.getLocalHost();

hostName = addr.getHostName();

}

catch(Exception ex){

hostName = "";

}

return hostName;

}

public static String[] getAllLocalHostIP(){

String[] ret = null;

try{

String hostName = getLocalHostName();

if(hostName.length()>0){

InetAddress[] addrs = InetAddress.getAllByName(hostName);

if(addrs.length>0){

ret = new String[addrs.length];

for(int i=0 ; i< addrs.length ; i++){

ret[i] = addrs[i].getHostAddress();

}

}

}

}

catch(Exception ex){

ret = null;

}

return ret;

}

public static String[] getAllHostIPByName(String hostName){

String[] ret = null;

try{

if(hostName.length()>0){

InetAddress[] addrs = InetAddress.getAllByName(hostName);

if(addrs.length>0){

ret = new String[addrs.length];

for(int i=0 ; i< addrs.length ; i++){

ret[i] = addrs[i].getHostAddress();

}

}

}

}

catch(Exception ex){

ret = null;

}

return ret;

}

public static void main(String[] args) {

//System.out.println(getLocalHostIP());

System.out.println("主机名:" + getLocalHostName());

String[] localIP = getAllLocalHostIP();

for(int i=0 ; i<localIP.length ; i++){

System.out.println( localIP[i]);

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有