Java获取电脑硬件信息
- package com.szht.gpy.util;
- import java.applet.Applet;
- import java.awt.Graphics;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileWriter;
- import java.io.InputStreamReader;
- import java.net.InetAddress;
- import java.net.NetworkInterface;
- public class HardWareUtils extends Applet {
- public HardWareUtils(){
- }
- private static final long serialVersionUID = 1L;
- @Override
- public void paint(Graphics paint) {
- super.paint(paint);
- paint.drawString("获取硬件信息", 10, 10);
- paint.drawString("CPU SN:" + HardWareUtils.getCPUSerial(), 10, 30);
- paint.drawString("主板 SN:" + HardWareUtils.getMotherboardSN(), 10, 50);
- paint.drawString("C盘 SN:" + HardWareUtils.getHardDiskSN("c"), 10, 70);
- paint.drawString("MAC SN:" + HardWareUtils.getMac(), 10, 90);
- }
- /**
- * 获取主板序列号
- *
- * @return
- */
- public static String getMotherboardSN() {
- String result = "";
- try {
- File file = File.createTempFile("realhowto", ".vbs");
- file.deleteOnExit();
- FileWriter fw = new java.io.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();
- }
- /**
- * 获取硬盘序列号
- *
- * @param drive
- * 盘符
- * @return
- */
- public static String getHardDiskSN(String drive) {
- String result = "";
- try {
- File file = File.createTempFile("realhowto", ".vbs");
- file.deleteOnExit();
- FileWriter fw = new java.io.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();
- }
- /**
- * 获取CPU序列号
- *
- * @return
- */
- public static String getCPUSerial() {
- String result = "";
- try {
- File file = File.createTempFile("tmp", ".vbs");
- file.deleteOnExit();
- FileWriter fw = new java.io.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";
- 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();
- }
- /**
- * 获取MAC地址
- */
- public static String getMac() {
- try {
- byte[] mac = NetworkInterface.getByInetAddress(InetAddress.getLocalHost()).getHardwareAddress();
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < mac.length; i++) {
- if (i != 0) {
- sb.append("-");
- }
- String s = Integer.toHexString(mac[i] & 0xFF);
- sb.append(s.length() == 1 ? 0 + s : s);
- }
- return sb.toString().toUpperCase();
- } catch (Exception e) {
- return "";
- }
- }
- public static void main(String[] args) throws Exception {
- System.out.println(getCPUSerial());//CPU
- System.out.println(getMotherboardSN());//主板
- System.out.println(getHardDiskSN("c"));//c盘
- System.out.println(getMac());//MAC
- String msg = getCPUSerial()+getMotherboardSN().replace(".", "")+getHardDiskSN("c")+getMac().replace("-", "");
- System.out.println("原始数据:"+msg);
- String encrypt = DesUtil.encrypt(msg);
- System.out.println("加密:"+encrypt);
- String decrypt = DesUtil.decrypt(encrypt);
- System.out.println("解密:"+decrypt);
- }
- }
Java获取电脑硬件信息的更多相关文章
- C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号)
最近学习过程中,想到提取系统硬件信息做一些验证,故而对网上提到的利用.NET System.Management类获取硬件信息做了进一步的学习.验证.验证是分别在4台电脑,XP SP3系统中进行,特将 ...
- 检测硬件的批处理命令,检测硬件bat,一键获取电脑硬件信息
警告:运行BAT源码是一种危险的动作,如果你不熟悉,请不要尝试! 批处理语言: 简体中文 授权方式: 免费软件 运行环境: Windows平台 检测硬件批处理命令.一键获取.直接双击就可以查看 @ec ...
- java获取电脑部分信息
获取mac地址与cpu序列号 参考博客:https://www.jb51.net/article/94793.htm 另一篇参考地址没记录下来 package util; import java.io ...
- java获取当前操作系统的信息
java获取当前操作系统的信息 JavaOS虚拟机UnixEXT 从网上收集的一些关于java获取操作系统信息的方法,现在总结一下: 1获取本机的IP地址: private static Strin ...
- java获取天气预报的信息
运行效果: 主要功能: 1,jsp页面输入省份和城市 根据条件获取当地的天气信息 2,java代码 利用第三方的省份和城市的路径地址 本工程主要实现java获取天气预报的信息步骤1,创建工程weath ...
- android 获取系统硬件信息
一,首先设置权限访问: <uses-permission android:name="android.permission.READ_PHONE_STATE" /> ...
- 通过wmi获取本地硬件信息的一些疑问。
通过wmi获取本地硬件信息的一些疑问. http://bbs.csdn.net/topics/391017789 http://blog.csdn.net/xcntime/article/detail ...
- 获取显卡硬件信息lspci -vnn | grep VGA -A 12
lspci -vnn | grep VGA -A 12 lshw -C display lshw -c video | grep configuration glxinfo | grep OpenGL ...
- C#程序中获取电脑硬件配置信息的一种方法
本文介绍获取cpu信息和内存信息的方法,根据本文所举例的代码可以举一反三获取更多信息. 获取cpu名称的方法: public string GetCpuInfo() { ManagementObjec ...
随机推荐
- Transformation in kentico
https://docs.kentico.com/k10/developing-websites/loading-and-displaying-data-on-websites/writing-tra ...
- zzuoj--10400--海岛争霸(并查集)
10400: B.海岛争霸 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 128 Solved: 46 [Submit][Status][Web B ...
- 滚动监听 after选择器
一.如何实现滚动到一定位置将内容固定在页面顶部 window.onscroll=function(){ //滚动的距离,距离顶部的距离 var topScroll =document.body.scr ...
- swift语言点评十九-类型转化与检查
1.oc比较: -(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例 -(BOOL) isMemberOfClass: classObj 判断是否是这个 ...
- pthread_cleanup_push vs Autorelease VS 异常处理
黑幕背后的Autorelease http://www.cnblogs.com/feng9exe/p/7239552.html objc_autoreleasePoolPush的返回值正是这个哨兵对象 ...
- 洛谷P3567 [POI2014]KUR-Couriers 主席树
挺裸的,没啥可讲的. 不带修改的主席树裸题 Code: #include<cstdio> #include<algorithm> using namespace std; co ...
- css兼容性问题总结
DIV+CSS设计IE6.IE7.FF 兼容性 DIV+CSS网页布局这是一种趋势,我也开始顺应这股趋势了,不过在使用DIV+CSS网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使 ...
- JavaScript函数练习
1. 判断一个数是否是素数 function isSushu (n) { n = n || 0; var isSu = true; for (var i = 2; i <= Math.sqrt( ...
- JSON.stringify(),JSON.parse(),eval(string)
JSON.stringify()用于从一个对象解析出字符串 : var obj = {"name":"week","age":" ...
- 学习《PythonWeb开发实战(董伟明)》中文PDF+源代码
python可以用了进行数据分析,也可以进行Web开发,一般会使用django或者flask等进行开发. 国内介绍python web的书有写的不错的,推荐看看<PythonWeb开发实战> ...