|
作者:Administrator
|
|
2008-04-23 01:45 |
|
-
- /**
- * 根据网卡取本机配置的IP
- * 如果是双网卡的,则取出外网IP
- * @return
- */
- public static String getIp(){
- String localip=null;//本地IP,如果没有配置外网IP则返回它
- String netip=null;//外网IP
- try {
- Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
- InetAddress ip = null;
- boolean finded=false;//是否找到外网IP
- while(netInterfaces.hasMoreElements() && !finded){
- NetworkInterface ni=netInterfaces.nextElement();
- Enumeration<InetAddress> address=ni.getInetAddresses();
- while(address.hasMoreElements()){
- ip=address.nextElement();
- System.out.println(ni.getName() +";"+ip.getHostAddress() +";ip.isSiteLocalAddress()="+ip.isSiteLocalAddress()+";ip.isLoopbackAddress()="+ip.isLoopbackAddress());
- if( !ip.isSiteLocalAddress() && !ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":")==-1){//外网IP
- netip=ip.getHostAddress();
- finded=true;
- break;
- }else if(ip.isSiteLocalAddress() && !ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":")==-1){//内网IP
- localip=ip.getHostAddress();
- }
- }
- }
- } catch (SocketException e) {
- e.printStackTrace();
- }
- if(netip!=null && !"".equals(netip)){
- return netip;
- }else{
- return localip;
- }
- }
我想信这对很多人都有用,所以在此共享了,欢迎大家一起测一下。。。。。
|
|
最后更新于: 2008-04-23 01:45 |