Java.Utils:获取电脑配置信息

Java.Utils:获取电脑配置信息packagecom.boob.common.utils;importjava.io.*;/***@description:电脑配置信息*@author:boob*@since:2020/2/7*/publicclassHardwareUtils{publicHardwareUtils(){}/***获取…

大家好,又见面了,我是你们的朋友全栈君。

Don’t say much, just go to the code.

package org.bood.common.utils;
import java.io.*;
/** * 获取电脑配置信息 * * @author bood * @since 2020/10/16 */
public class HardwareUtils { 

private HardwareUtils() { 

}
/** * <p> * 获取主板序列号 * </p> * * @return:java.lang.String * @author:bood * @date:2020/10/16 */
public static String getMotherboardSN() { 

String result = "";
try { 

File file = File.createTempFile("realhowto", ".vbs");
file.deleteOnExit();
FileWriter fw = new FileWriter(file);
String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
+ "Set colItems = objWMIService.ExecQuery _ \n"
+ " (\"Select * from Win32_BaseBoard\") \n"
+ "For Each objItem in colItems \n"
+ " Wscript.Echo objItem.SerialNumber \n"
+ " exit for ' do the first cpu only! \n" + "Next \n";
fw.write(vbs);
fw.close();
Process p = Runtime.getRuntime().exec(
"cscript //NoLogo " + file.getPath());
BufferedReader input = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line;
while ((line = input.readLine()) != null) { 

result += line;
}
input.close();
} catch (Exception e) { 

e.printStackTrace();
}
return result.trim();
}
/** * <p> * 获取硬盘序列号 * </p> * * @param drive: 盘符 * @return:java.lang.String * @author:bood * @date:2020/10/16 */
public static String getHardDiskSN(String drive) { 

String result = "";
try { 

File file = File.createTempFile("realhowto", ".vbs");
file.deleteOnExit();
FileWriter fw = new FileWriter(file);
String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n"
+ "Set colDrives = objFSO.Drives\n"
+ "Set objDrive = colDrives.item(\""
+ drive
+ "\")\n"
+ "Wscript.Echo objDrive.SerialNumber"; // see note
fw.write(vbs);
fw.close();
Process p = Runtime.getRuntime().exec(
"cscript //NoLogo " + file.getPath());
BufferedReader input = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line;
while ((line = input.readLine()) != null) { 

result += line;
}
input.close();
} catch (Exception e) { 

e.printStackTrace();
}
return result.trim();
}
/** * <p> * 获取 CPU 序列号 * </p> * * @return:java.lang.String * @author:bood * @date:2020/10/16 */
public static String getCPUSerial() { 

String result = "";
try { 

File file = File.createTempFile("tmp", ".vbs");
file.deleteOnExit();
FileWriter fw = new FileWriter(file);
String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
+ "Set colItems = objWMIService.ExecQuery _ \n"
+ " (\"Select * from Win32_Processor\") \n"
+ "For Each objItem in colItems \n"
+ " Wscript.Echo objItem.ProcessorId \n"
+ " exit for ' do the first cpu only! \n" + "Next \n";
// + " exit for \r\n" + "Next";
fw.write(vbs);
fw.close();
Process p = Runtime.getRuntime().exec(
"cscript //NoLogo " + file.getPath());
BufferedReader input = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line;
while ((line = input.readLine()) != null) { 

result += line;
}
input.close();
file.delete();
} catch (Exception e) { 

e.fillInStackTrace();
}
if (result.trim().length() < 1 || result == null) { 

result = "无CPU_ID被读取";
}
return result.trim();
}
/** * <p> * 获取MAC地址,使用前请修改,只适合中文系统,并且名称为以太网适配器的网卡地址 * </p> * * @return:java.lang.String * @author:bood * @date:2020/10/16 */
@Deprecated
public static String getMac() { 

String result = "";
try { 

Process process = Runtime.getRuntime().exec("ipconfig /all");
InputStreamReader ir = new InputStreamReader(process.getInputStream(), "GBK");
LineNumberReader input = new LineNumberReader(ir);
String line;
while ((line = input.readLine()) != null) { 

if (line.indexOf("以太网适配器") != -1) { 

while ((line = input.readLine()) != null) { 

if (line.indexOf("Physical Address") >= 0 || line.indexOf("物理地址") >= 0) { 

String MACAddr = line.substring(line.indexOf("-") - 2);
result = MACAddr;
break;
}
}
break;
}
}
} catch (IOException e) { 

System.err.println("IOException " + e.getMessage());
}
return result;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159024.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 关于QMap的几点总结思考

    关于QMap的几点总结思考关于QMap的几点总结思考题记:前段时间集中精力写了数据的分拣算法,用到了容器QMap和QMultiMap。回头再来回去该算法的时候,又觉得当时好像不是自己写的一样,于是有必要将QMap类来总结一下。首先来了解下C++中STL中的map:map是STL的一个关联容器,它提供一对一的hash。特点:第一个可以称为关键字(key),每个关键字只能在map中出现一次;第二个可能称为该关键字的值(value);map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。M

  • navicat生成激活码时出错【最新永久激活】2022.02.21[通俗易懂]

    (navicat生成激活码时出错)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.htmlHCIQ56F36O-eyJsaWNlbnNlSWQi…

  • 给js对象添加属性和方法属性_js给json对象添加属性

    给js对象添加属性和方法属性_js给json对象添加属性方式一:在定义对象时,直接添加属性和方法functionPerson(name,age){ this.name=name; this.age=age; this.say=function(){ alert(name+’:::’+age); }}varperson=newPerson(‘张三’,24);person.say();方式二:…

    2022年10月24日
  • C#-TextBox-登录窗口密码不可见—ShinePans[通俗易懂]

    C#-TextBox-登录窗口密码不可见—ShinePans[通俗易懂]usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceTextB

  • WLAN没有有效的IP配置如何一招解决

    WLAN没有有效的IP配置如何一招解决提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档WLAN没有有效的IP配置如何一招解决前言一、电脑连不上网?二、具体步骤1.命令提示符(管理员)输入netshwinsockreset2.重启电脑总结前言自己的笔记本原本好好的突然就连不上网了,该怎么办?别急,博主也遇到过这样的问题,并且找到一种方法,非常有用,认真看哦!一、电脑连不上网?电脑突然就连不上网,诊断以后出现这个你是否在网上看到这样的解决方案?还有这样的博主亲自尝试过,好多种方法都不管用,这里我介绍

  • postman发送json数据请求(java用post发json数据)

    java发送post请求。在开发中我们经常遇到从一个服务器中向另外一个服务器的发送数据数据,他们走的基本上都是api,对于一般的增加、修改、删除都是post请求。下面的例子就是java使用HttpCilent发送一个post请求,参数形式是json格式。具体代码见[url]http://www.exceptionhelp.com/javadetail?articleId=582[/u…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号