Java调取底层命令获取主机名(localhostName)
2015-10-10 16:30
573 查看
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.UnknownHostException;
import java.util.Enumeration;
import com.comisys.gudong.logging.Logger;
public class RuntimeEnvUtil {
/**
* @author fsl
* @return
*/
//获取本机的主机名
public static String getHostNameM(){
if(logger.isDebugEnabled()){
logger.debug("debug getHostName begin");
}
String name =getHostName();
logger.debug("host name:"+name);
if("localhost".equals(name)){
return getServerIp();
}
if(logger.isDebugEnabled()){
logger.debug("debug getHostName end");
}
return name;
}
public static String getHostName(){
try {
Process p = Runtime.getRuntime().exec("hostname");
BufferedInputStream in = new BufferedInputStream(p.getInputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line=null;
//只需要取出第一行
if((line=br.readLine())!=null)
{
return line;
}
br.close();
p.destroy();
return line;
} catch (IOException e) {
if(logger.isErrorEnabled()){
logger.error("IOException", e);
}
}
return null;
}
//获取本地的非127.0.0.1的ip地址
public static String getServerIp(){
String SERVER_IP=null;
try {
Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
InetAddress ip = null;
while (netInterfaces.hasMoreElements()) {
boolean flag = false;
NetworkInterface ni = (NetworkInterface) netInterfaces
.nextElement();
//判断 接口名字中不包含:的
//System.out.println(ni.getName()+"-----");
logger.debug(ni.getName()+"-----");
if(!ni.getName().contains(":")){
Enumeration<InetAddress> inetAddresses = ni.getInetAddresses();
while (inetAddresses.hasMoreElements()) {
ip = inetAddresses.nextElement();
//!ip.isSiteLocalAddress() 判断信息是否源自本机的ip
if (!ip.isLoopbackAddress()&& ip.getHostAddress().indexOf(":") == -1) {
SERVER_IP = ip.getHostAddress();
flag = true;
break;
} else {
ip = null;
}
}
}
if(flag){
break;
}
}
} catch (Exception e) {
logger.error("unknown host",e);
}
return SERVER_IP;
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.UnknownHostException;
import java.util.Enumeration;
import com.comisys.gudong.logging.Logger;
public class RuntimeEnvUtil {
/**
* @author fsl
* @return
*/
//获取本机的主机名
public static String getHostNameM(){
if(logger.isDebugEnabled()){
logger.debug("debug getHostName begin");
}
String name =getHostName();
logger.debug("host name:"+name);
if("localhost".equals(name)){
return getServerIp();
}
if(logger.isDebugEnabled()){
logger.debug("debug getHostName end");
}
return name;
}
public static String getHostName(){
try {
Process p = Runtime.getRuntime().exec("hostname");
BufferedInputStream in = new BufferedInputStream(p.getInputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line=null;
//只需要取出第一行
if((line=br.readLine())!=null)
{
return line;
}
br.close();
p.destroy();
return line;
} catch (IOException e) {
if(logger.isErrorEnabled()){
logger.error("IOException", e);
}
}
return null;
}
//获取本地的非127.0.0.1的ip地址
public static String getServerIp(){
String SERVER_IP=null;
try {
Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
InetAddress ip = null;
while (netInterfaces.hasMoreElements()) {
boolean flag = false;
NetworkInterface ni = (NetworkInterface) netInterfaces
.nextElement();
//判断 接口名字中不包含:的
//System.out.println(ni.getName()+"-----");
logger.debug(ni.getName()+"-----");
if(!ni.getName().contains(":")){
Enumeration<InetAddress> inetAddresses = ni.getInetAddresses();
while (inetAddresses.hasMoreElements()) {
ip = inetAddresses.nextElement();
//!ip.isSiteLocalAddress() 判断信息是否源自本机的ip
if (!ip.isLoopbackAddress()&& ip.getHostAddress().indexOf(":") == -1) {
SERVER_IP = ip.getHostAddress();
flag = true;
break;
} else {
ip = null;
}
}
}
if(flag){
break;
}
}
} catch (Exception e) {
logger.error("unknown host",e);
}
return SERVER_IP;
}
}
相关文章推荐
- Java_Map集合
- 初学Java枚举类
- Eclipse通用插件离线安装
- springmvc返回值、数据写到页面、表单提交、ajax、重定向
- Netbeans使用UTF-8编码
- Java之jdbc使用小结
- Maven项目插件maven-javadoc-plugin.jar报错
- Java中十六进制转有符号浮点数
- java Swing中子对话框的实现
- 在springmvc中controller的一个方法处理多个不同请求
- JAVAjson天气预报聚合数据接口
- JavaBean规范
- MyEclipse8.6安装svn
- 快速排序
- java实现的kmp算法
- c3p0如何配置多数据源的解决方法
- Struts2 在Action中获取request、session、servletContext的三种方法
- win8配置JDK1.8环境变量
- Struts2 在Action中获取request、session、servletContext的三种方法
- java 集合框架按字符串长度排序