WEB开发网
开发学院WEB开发Jsp Java获取主机IP地址,自动区分Windows和Linux 阅读

Java获取主机IP地址,自动区分Windows和Linux

 2009-12-18 21:10:42 来源:WEB开发网   
核心提示: import java.net.InetAddress;import java.net.NetworkInterface;import java.util.Enumeration;public class OSUtil { /*** 判断当前操作是否Windows.* * @return true---是Window
 import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;

public class OSUtil {

/**
 * 判断当前操作是否Windows.
 *
 * @return true---是Windows操作系统
 */
public static boolean isWindowsOS(){
 boolean isWindowsOS = false;
 String osName = System.getPRoperty("os.name");
 if(osName.toLowerCase().indexOf("windows")>-1){
  isWindowsOS = true;
 }
 return isWindowsOS;
}

/**
 * 获取本机ip地址,并自动区分Windows还是linux操作系统
 * @return String
 */
public static String getLocalIP(){
 String sIP = "";
 InetAddress ip = null; 
 try {
  //如果是Windows操作系统
  if(isWindowsOS()){
  ip = InetAddress.getLocalHost();
  }
  //如果是Linux操作系统
  else{
  boolean bFindIP = false;
  Enumeration<NetworkInterface> netInterfaces = (Enumeration<NetworkInterface>) NetworkInterface
   .getNetworkInterfaces();
  while (netInterfaces.hasMoreElements()) {
   if(bFindIP){
   break;
   }
   NetworkInterface ni = (NetworkInterface) netInterfaces.nextElement();
   //----------特定情况,可以考虑用ni.getName判断
   //遍历所有ip
   Enumeration<InetAddress> ips = ni.getInetAddresses();
   while (ips.hasMoreElements()) {
   ip = (InetAddress) ips.nextElement();
   if( ip.isSiteLocalAddress()  
         && !ip.isLoopbackAddress()  //127.开头的都是lookback地址
         && ip.getHostAddress().indexOf(":")==-1){
     bFindIP = true;
       break;  
     }
   }

  }
  }
 }
 catch (Exception e) {
  e.printStackTrace();
 } 

 if(null != ip){
  sIP = ip.getHostAddress();
 }
 return sIP;
}
//如果不能满足要求,请留言并说明情况
public static void main(String[] args) {
 String serverIP = OS.getLocalIP();
 System.out.println("serverIP:::" + serverIP);
}
}



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wts/archive/2009/12/17/5027168.aspx

Tags:Java 获取 主机

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接