获取本机ip地址,并自动区分Windows还是linux操作系统
2017-06-12 17:12
405 查看
声明:本文纯属个人随手笔记,如果对您有参考价值我十分开心,如果有存在错误,或者有更好的解决办法也麻烦您留言告诉我,大家共同成长,切勿恶言相。 欢迎加入资源共享QQ群:275343679,一起发现知识、了解知识、学习知识、分享知识。个人网站: www.blueskyui.cn
================================================================================
/**
* 获取本机ip地址,并自动区分Windows还是linux操作系统
* @return String
*/
public static String getLocalIP(String cip){
String sIP = "";
InetAddress ip = null;
try {
//如果是Windows操作系统
if(isWindowsOS()){
ip = InetAddress.getLocalHost();
} else{
//如果是Linux操作系统
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) {
logger.error("get ip error.",e);
}
if(null != ip){
sIP = ip.getHostAddress();
}
logger.info(String.format("config IP:%s === server IP:%s ",cip,sIP));
return sIP;
}
/**
* 判断系统
*
* @return String
*/
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 cip){
String sIP = "";
InetAddress ip = null;
try {
//如果是Windows操作系统
if(isWindowsOS()){
ip = InetAddress.getLocalHost();
} else{
//如果是Linux操作系统
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) {
logger.error("get ip error.",e);
}
if(null != ip){
sIP = ip.getHostAddress();
}
logger.info(String.format("config IP:%s === server IP:%s ",cip,sIP));
return sIP;
}
/**
* 判断系统
*
* @return String
*/
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操作系统
- Java获取主机IP地址,自动区分Windows和Linux
- 搜索一个问题 C、C++判断操作系统 是 Linux还是windows 还是Unix【编译器内置宏 探索(不是特别满意)】
- java 如何判断操作系统是Linux还是Windows
- Linux如何自动获取IP地址
- Linux如何自动获取IP地址
- 查看cpu 以及linux和windows系统是32为还是64位?+查看操作系统版本
- 搜索一个问题 C、C++判断操作系统 是 Linux还是windows 还是Unix【编译器内置宏 探索(不是特别满意)】
- 嵌入式linux通过DHCP自动获取IP地址实现
- 搜索一个问题 C、C++判断操作系统 是 Linux还是windows 还是Unix【编译器内置宏 探索(不是特别满意)】
- linux下C实现IP地址,DNS,网关的自动获取
- ANT 脚本根据windows 和linux操作系统的不同,自动采用不同的编译方式
- windows或linux系统下获取多网卡的ip地址
- java 如何判断操作系统是Linux还是Windows
- 嵌入式 ARM-Linux配置DHCP自动获取IP地址
- Linux如何自动获取IP地址及配置静态IP地址上网
- 搜索一个问题 C、C++判断操作系统 是 Linux还是windows 还是Unix【编译器内置宏 探索(不是特别满意)】
- linux ip地址自动获取,ip地址…
- Linux如何自动获取IP地址
- linux ip地址自动获取,ip地址…