JAVA获取计算机的IP、名称、操作系统等信息

时间:2023-03-09 03:58:41
JAVA获取计算机的IP、名称、操作系统等信息
  1. import java.io.BufferedReader;
  2. import java.io.InputStream;
  3. import java.io.InputStreamReader;
  4. import java.net.InetAddress;
  5. import java.net.NetworkInterface;
  6. import java.util.ArrayList;
  7. import java.util.Formatter;
  8. import java.util.List;
  9. import java.util.Locale;
  10. import java.util.Map;
  11. import java.util.Properties;
  12. public class getComputer {
  13. //通过截取cmd流方式得到计算机的配置信息(不好)
  14. public static List<String> getIpAddress(){
  15. Process p = null;
  16. List<String> address  = new ArrayList<String>();
  17. try{
  18. p = new ProcessBuilder("ipconfig","/all").start();
  19. }catch(Exception e){
  20. return address;
  21. }
  22. StringBuffer sb = new StringBuffer();
  23. //读取进程输出值
  24. InputStream inputStream = p.getInputStream();
  25. BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
  26. String s = "";
  27. try{
  28. while((s=br.readLine())!=null){
  29. sb.append(s+"\n");
  30. }
  31. }catch(Exception e){
  32. e.printStackTrace();
  33. }finally{
  34. try{
  35. inputStream.close();
  36. }catch(Exception e){
  37. e.printStackTrace();
  38. }
  39. }
  40. System.out.println(sb);
  41. return address;
  42. }
  43. public static void getIpconfig(){
  44. Map<String,String> map = System.getenv();
  45. System.out.println(map.get("USERNAME"));//获取用户名
  46. System.out.println(map.get("COMPUTERNAME"));//获取计算机名
  47. System.out.println(map.get("USERDOMAIN"));//获取计算机域名
  48. }
  49. //得到计算机的ip地址和mac地址
  50. public static void getConfig(){
  51. try{
  52. InetAddress address = InetAddress.getLocalHost();
  53. NetworkInterface ni = NetworkInterface.getByInetAddress(address);
  54. //ni.getInetAddresses().nextElement().getAddress();
  55. byte[] mac = ni.getHardwareAddress();
  56. String sIP = address.getHostAddress();
  57. String sMAC = "";
  58. Formatter formatter = new Formatter();
  59. for (int i = 0; i < mac.length; i++) {
  60. sMAC = formatter.format(Locale.getDefault(), "%02X%s", mac[i],
  61. (i < mac.length - 1) ? "-" : "").toString();
  62. }
  63. System.out.println("IP:" + sIP);
  64. System.out.println("MAC:" + sMAC);
  65. }catch(Exception e){
  66. e.printStackTrace();
  67. }
  68. }
  69. //得到计算机的ip,名称,操作系统名称,操作系统版本
  70. public static void Config(){
  71. try{
  72. InetAddress addr = InetAddress.getLocalHost();
  73. String ip=addr.getHostAddress().toString(); //获取本机ip
  74. String hostName=addr.getHostName().toString(); //获取本机计算机名称
  75. System.out.println("本机IP:"+ip+"\n本机名称:"+hostName);
  76. Properties props=System.getProperties();
  77. System.out.println("操作系统的名称:"+props.getProperty("os.name"));
  78. System.out.println("操作系统的版本:"+props.getProperty("os.version"));
  79. }catch(Exception e){
  80. e.printStackTrace();
  81. }
  82. }
  83. //java环境
  84. public static void all(){
  85. Properties props=System.getProperties();
  86. System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));
  87. System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));
  88. System.out.println("Java供应商的URL:"+props.getProperty("java.vendor.url"));
  89. System.out.println("Java的安装路径:"+props.getProperty("java.home"));
  90. System.out.println("Java的虚拟机规范版本:"+props.getProperty("java.vm.specification.version"));
  91. System.out.println("Java的虚拟机规范供应商:"+props.getProperty("java.vm.specification.vendor"));
  92. System.out.println("Java的虚拟机规范名称:"+props.getProperty("java.vm.specification.name"));
  93. System.out.println("Java的虚拟机实现版本:"+props.getProperty("java.vm.version"));
  94. System.out.println("Java的虚拟机实现供应商:"+props.getProperty("java.vm.vendor"));
  95. System.out.println("Java的虚拟机实现名称:"+props.getProperty("java.vm.name"));
  96. System.out.println("Java运行时环境规范版本:"+props.getProperty("java.specification.version"));
  97. System.out.println("Java运行时环境规范供应商:"+props.getProperty("java.specification.vender"));
  98. System.out.println("Java运行时环境规范名称:"+props.getProperty("java.specification.name"));
  99. System.out.println("Java的类格式版本号:"+props.getProperty("java.class.version"));
  100. System.out.println("Java的类路径:"+props.getProperty("java.class.path"));
  101. System.out.println("加载库时搜索的路径列表:"+props.getProperty("java.library.path"));
  102. System.out.println("默认的临时文件路径:"+props.getProperty("java.io.tmpdir"));
  103. System.out.println("一个或多个扩展目录的路径:"+props.getProperty("java.ext.dirs"));
  104. System.out.println("操作系统的名称:"+props.getProperty("os.name"));
  105. System.out.println("操作系统的构架:"+props.getProperty("os.arch"));
  106. System.out.println("操作系统的版本:"+props.getProperty("os.version"));
  107. 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"));
  108. System.out.println("用户的主目录:"+props.getProperty("user.home"));
  109. System.out.println("用户的当前工作目录:"+props.getProperty("user.dir"));
  110. }
  111. public static void main(String[] args) {
  112. all();
  113. }
  114. }