Java获取电脑IP、MAC、各种版本

packagecom.rapoo.middle.action;

importjava.io.BufferedReader;

importjava.io.InputStream;

importjava.io.InputStreamReader;

importjava.net.InetAddress;

importjava.net.NetworkInterface;
importjava.util.ArrayList;
importjava.util.Formatter;
importjava.util.List;
importjava.util.Locale;
importjava.util.Map;
importjava.util.Properties;
publicclassSystemUtil {
//通过截取cmd流方式得到计算机的配置信息(不好)

publicstaticList getIpAddress(){
Process p =null;
List address  =newArrayList();
try{
p =newProcessBuilder("ipconfig","/all").start();
}catch(Exception e){
returnaddress;
}

StringBuffer sb =newStringBuffer();
//读取进程输出值
InputStream inputStream = p.getInputStream();
BufferedReader br =newBufferedReader(newInputStreamReader(inputStream));
String s ="";
try{
while((s=br.readLine())!=null){
sb.append(s+"\n");
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
inputStream.close();
}catch(Exception e){
e.printStackTrace();
}
}
System.out.println(sb);
returnaddress;
}

publicstaticvoidgetIpconfig(){
Map map = System.getenv();
System.out.println(map.get("USERNAME"));//获取用户名
System.out.println(map.get("COMPUTERNAME"));//获取计算机名
System.out.println(map.get("USERDOMAIN"));//获取计算机域名
}

//得到计算机的ip地址和mac地址

publicstaticvoidgetConfig(){
try{
InetAddress address = InetAddress.getLocalHost();
NetworkInterface ni = NetworkInterface.getByInetAddress(address);
//ni.getInetAddresses().nextElement().getAddress();
byte[] mac = ni.getHardwareAddress();
String sIP = address.getHostAddress();
String sMAC ="";
Formatter formatter =newFormatter();
for(inti =0; i < mac.length; i++) {
sMAC = formatter.format(Locale.getDefault(),"%02X%s", mac[i],
(i < mac.length -1) ?"-":"").toString();
}
System.out.println("IP:"+ sIP);
System.out.println("MAC:"+ sMAC);
}catch(Exception e){
e.printStackTrace();
}
}

//得到计算机的ip,名称,操作系统名称,操作系统版本

publicstaticvoidConfig(){
try{
InetAddress addr = InetAddress.getLocalHost();
String ip=addr.getHostAddress().toString();//获取本机ip
String hostName=addr.getHostName().toString();//获取本机计算机名称
System.out.println("本机IP:"+ip+"\n本机名称:"+hostName);
Properties props=System.getProperties();
System.out.println("操作系统的名称:"+props.getProperty("os.name"));
System.out.println("操作系统的版本:"+props.getProperty("os.version"));
}catch(Exception e){
e.printStackTrace();
}
}

//java环境
publicstaticvoidall(){
Properties props=System.getProperties();
System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));
System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));
System.out.println("Java供应商的URL:"+props.getProperty("java.vendor.url"));
System.out.println("Java的安装路径:"+props.getProperty("java.home"));
System.out.println("Java的虚拟机规范版本:"+props.getProperty("java.vm.specification.version"));
System.out.println("Java的虚拟机规范供应商:"+props.getProperty("java.vm.specification.vendor"));
System.out.println("Java的虚拟机规范名称:"+props.getProperty("java.vm.specification.name"));
System.out.println("Java的虚拟机实现版本:"+props.getProperty("java.vm.version"));
System.out.println("Java的虚拟机实现供应商:"+props.getProperty("java.vm.vendor"));
System.out.println("Java的虚拟机实现名称:"+props.getProperty("java.vm.name"));
System.out.println("Java运行时环境规范版本:"+props.getProperty("java.specification.version"));
System.out.println("Java运行时环境规范供应商:"+props.getProperty("java.specification.vender"));
System.out.println("Java运行时环境规范名称:"+props.getProperty("java.specification.name"));
System.out.println("Java的类格式版本号:"+props.getProperty("java.class.version"));
System.out.println("Java的类路径:"+props.getProperty("java.class.path"));
System.out.println("加载库时搜索的路径列表:"+props.getProperty("java.library.path"));
System.out.println("默认的临时文件路径:"+props.getProperty("java.io.tmpdir"));=
System.out.println("一个或多个扩展目录的路径:"+props.getProperty("java.ext.dirs"));
System.out.println("操作系统的名称:"+props.getProperty("os.name"));
System.out.println("操作系统的构架:"+props.getProperty("os.arch"));
System.out.println("操作系统的版本:"+props.getProperty("os.version"));
System.out.println("文件分隔符:"+props.getProperty("file.separator"));//在 unix 系统中是"/"
System.out.println("路径分隔符:"+props.getProperty("path.separator"));//在 unix 系统中是":"
System.out.println("行分隔符:"+props.getProperty("line.separator"));//在 unix 系统中是"/n"
System.out.println("用户的账户名称:"+props.getProperty("user.name"));
System.out.println("用户的主目录:"+props.getProperty("user.home"));
System.out.println("用户的当前工作目录:"+props.getProperty("user.dir"));
}

publicstaticvoidmain(String[] args) {
Config();
//        all();

}
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,955评论 18 399
  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 9,398评论 2 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,464评论 19 139
  • 二十多岁时,活的特别懵懂,找了一份稳定的工作,工作上还比较认真,但是没有什么职业规划,人生规划的概念。所...
    菲姨所思阅读 2,885评论 0 0
  • 我把我们的相识忘记了,但我却但我却清晰地记得你离开的样子。或许是你的离开对我来说依旧是触目惊心的伤害吧,或许是对...
    樊婳婳阅读 1,222评论 0 2