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

2023-10-28

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

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

  • 任务“:app:dexDebug”执行失败

    我目前正在处理我的项目 我决定将我的 Android Studio 更新到新版本 但在我导入项目后 它显示如下错误 Information Gradle tasks app assembleDebug app preBuild UP TO
  • Android - 如何访问 onResume 中 onCreate 中实例化的 View 对象?

    In my onCreate 方法 我正在实例化一个ImageButton View public void onCreate Bundle savedInstanceState super onCreate savedInstanceSt
  • 检查双精度值的等于和不等于条件

    我在比较两者时遇到困难double values using and 我创建了 6 个双变量并尝试进行比较If健康 状况 double a b c d e f if a b c d e f My code here in case of t
  • 如何打印整个字符串池?

    我想打印包含文字的整个字符串池String使用添加的对象intern 就在垃圾收集之前 JDK有没有隐式的方法来进行这样的操作 我们如何检查字符串池 EDIT The comment suggests that there may be a
  • 如何对 IntStream 进行逆序排序

    我正在使用 txt 文件读取数字BufferedReader 我想颠倒该流中元素的顺序 以便在收集它们时 它们将从最高到最低排列 我不想在构建数组后进行排序 因为我不知道其中可能有多少元素 我只需要最高的 N 个元素 in new Buff
  • Google Inbox 类似 RecyclerView 项目打开动画

    目前 我正在尝试实现 Google Inbox 例如RecyclerView行为 我对电子邮件打开动画很好奇 我的问题是 该怎么做 我的意思是 他们使用了哪种方法 他们用过吗ItemAnimator dispatchChangeStarti
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • 所有junit测试后的清理

    在我的项目中 我必须在所有测试之前进行一些存储库设置 这是使用一些棘手的静态规则来完成的 然而 在所有测试之后我不知道如何进行清理 我不想保留一些神奇的静态数字来引用所有测试方法的数量 我应该一直维护它 最受赞赏的方法是添加一些侦听器 该侦
  • Java替换特定字符

    这是我在这个网站上的第一个问题 所以我会尽量不要成为一个十足的菜鸟 我目前正在用java 创建刽子手游戏 所以我问你的问题是我们是否被赋予了 幽灵 这个词 并将 Ghost 替换为 hiddenWord ghost length for i
  • 使用 java 按电子邮件发送日历邀请

    我正在尝试使用 java 发送每封电子邮件的日历邀请 收件人收到电子邮件 但不会显示接受或拒绝的邀请 而是将该事件自动添加到他的日历中 我正在使用 ical4j jar 构建活动 邀请 private Calendar getInvite
  • 尝试在没有 GatewayIntent 的情况下访问消息内容

    我希望每当我写一条打招呼的消息时 机器人都会在控制台中响应一条消息 但它只是给我一个错误 JDA MainWS ReadThread WARN JDA Attempting to access message content without
  • Install4j:如何在安装结束时执行命令行 java -jar filename.jar

    在 Intall4j 中 在安装结束时 我只想通过执行如下命令行来初始化某些内容 java jar filename jar 我怎样才能归档这个任务install4j Thanks 将 运行可执行文件或批处理文件 操作添加到 安装屏幕 并设
  • 如何在java中使jpeg无损?

    有没有人可以告诉我如何使用编写 jpeg 文件losslessjava中的压缩 我使用下面的代码读取字节来编辑字节 WritableRaster raster image getRaster DataBufferByte buffer Da
  • 如何使用 Mockito 和 Junit 模拟 ZonedDateTime

    我需要模拟一个ZonedDateTime ofInstant 方法 我知道SO中有很多建议 但对于我的具体问题 到目前为止我还没有找到任何简单的解决办法 这是我的代码 public ZonedDateTime myMethodToTest
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • 我想要一个 Java 阿拉伯语词干分析器

    我正在寻找阿拉伯语的 Java 词干分析器 我找到了一个名为 AraMorph 的库 但它的输出是无法控制的 并且它会形成不需要的单词 还有其他阿拉伯语词干分析器吗 这是新的阿拉伯语词干分析器 Assem 的阿拉伯语轻词干分析器 http
  • Spock模拟inputStream导致无限循环

    我有一个代码 gridFSFile inputStream bytes 当我尝试这样测试时 given def inputStream Mock InputStream def gridFSDBFile Mock GridFSDBFile
  • 从一个文本文件中获取数据并将其移动到新的文本文件

    我有一个文件 里面有数据 在我的主要方法中 我读入文件并关闭文件 我调用另一种方法 在原始文件的同一文件夹内创建一个新文件 所以现在我有两个文件 原始文件和通过我调用的方法生成的文件 我需要另一种方法 从原始文件中获取数据并将其写入创建的新
  • Java 编码风格、局部变量与重复方法调用

    我更喜欢使用局部变量而不是多次调用同一方法 I prefer this Vehicle vehicle person getVehicle if vehicle instanceof Car Car car Car vehicle car
  • java中如何找到class文件的包

    我正在编写一个使用 class 文件的 java 程序 我希望能够读取文件系统上的 class 文件 使用 InputStream 并确定它所在的包 该 class 文件可能不在一个好的包目录结构中 它可能位于某个随机位置 我怎样才能做到这

随机推荐