博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java获取电脑硬件信息
阅读量:6202 次
发布时间:2019-06-21

本文共 6556 字,大约阅读时间需要 21 分钟。

1 package com.szht.gpy.util;  2   3 import java.applet.Applet;  4 import java.awt.Graphics;  5 import java.io.BufferedReader;  6 import java.io.File;  7 import java.io.FileWriter;  8 import java.io.InputStreamReader;  9 import java.net.InetAddress; 10 import java.net.NetworkInterface; 11  12  13 public class HardWareUtils extends Applet { 14     public HardWareUtils(){ 15     } 16     private static final long serialVersionUID = 1L; 17   18     @Override 19     public void paint(Graphics paint) { 20         super.paint(paint); 21         paint.drawString("获取硬件信息", 10, 10); 22         paint.drawString("CPU  SN:" + HardWareUtils.getCPUSerial(), 10, 30); 23         paint.drawString("主板  SN:" + HardWareUtils.getMotherboardSN(), 10, 50); 24         paint.drawString("C盘   SN:" + HardWareUtils.getHardDiskSN("c"), 10, 70); 25         paint.drawString("MAC  SN:" + HardWareUtils.getMac(), 10, 90); 26     } 27   28     /** 29      * 获取主板序列号 30      *  31      * @return 32      */ 33     public static String getMotherboardSN() { 34         String result = ""; 35         try { 36             File file = File.createTempFile("realhowto", ".vbs"); 37             file.deleteOnExit(); 38             FileWriter fw = new java.io.FileWriter(file); 39             String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n" 40                     + "Set colItems = objWMIService.ExecQuery _ \n" 41                     + "   (\"Select * from Win32_BaseBoard\") \n" 42                     + "For Each objItem in colItems \n" 43                     + "    Wscript.Echo objItem.SerialNumber \n" 44                     + "    exit for  ' do the first cpu only! \n" + "Next \n"; 45   46             fw.write(vbs); 47             fw.close(); 48             Process p = Runtime.getRuntime().exec( 49                     "cscript //NoLogo " + file.getPath()); 50             BufferedReader input = new BufferedReader(new InputStreamReader(p 51                     .getInputStream())); 52             String line; 53             while ((line = input.readLine()) != null) { 54                 result += line; 55             } 56             input.close(); 57         } catch (Exception e) { 58             e.printStackTrace(); 59         } 60         return result.trim(); 61     } 62   63     /** 64      * 获取硬盘序列号 65      *  66      * @param drive 67      *            盘符 68      * @return 69      */ 70     public static String getHardDiskSN(String drive) { 71         String result = ""; 72         try { 73             File file = File.createTempFile("realhowto", ".vbs"); 74             file.deleteOnExit(); 75             FileWriter fw = new java.io.FileWriter(file); 76   77             String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n" 78                     + "Set colDrives = objFSO.Drives\n" 79                     + "Set objDrive = colDrives.item(\"" 80                     + drive 81                     + "\")\n" 82                     + "Wscript.Echo objDrive.SerialNumber"; // see note 83             fw.write(vbs); 84             fw.close(); 85             Process p = Runtime.getRuntime().exec( 86                     "cscript //NoLogo " + file.getPath()); 87             BufferedReader input = new BufferedReader(new InputStreamReader(p 88                     .getInputStream())); 89             String line; 90             while ((line = input.readLine()) != null) { 91                 result += line; 92             } 93             input.close(); 94         } catch (Exception e) { 95             e.printStackTrace(); 96         } 97         return result.trim(); 98     } 99  100     /**101      * 获取CPU序列号102      * 103      * @return104      */105     public static String getCPUSerial() {106         String result = "";107         try {108             File file = File.createTempFile("tmp", ".vbs");109             file.deleteOnExit();110             FileWriter fw = new java.io.FileWriter(file);111             String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"112                     + "Set colItems = objWMIService.ExecQuery _ \n"113                     + "   (\"Select * from Win32_Processor\") \n"114                     + "For Each objItem in colItems \n"115                     + "    Wscript.Echo objItem.ProcessorId \n"116                     + "    exit for  ' do the first cpu only! \n" + "Next \n";117             fw.write(vbs);118             fw.close();119             Process p = Runtime.getRuntime().exec(120                     "cscript //NoLogo " + file.getPath());121             BufferedReader input = new BufferedReader(new InputStreamReader(p122                     .getInputStream()));123             String line;124             while ((line = input.readLine()) != null) {125                 result += line;126             }127             input.close();128             file.delete();129         } catch (Exception e) {130             e.fillInStackTrace();131         }132         if (result.trim().length() < 1 || result == null) {133             result = "无CPU_ID被读取";134         }135         return result.trim();136     }137  138     /**139      * 获取MAC地址140      */141     public static String getMac() {142         try {143             byte[] mac = NetworkInterface.getByInetAddress(InetAddress.getLocalHost()).getHardwareAddress();144             StringBuffer sb = new StringBuffer();145             for (int i = 0; i < mac.length; i++) {146                 if (i != 0) {147                     sb.append("-");148                 }149                 String s = Integer.toHexString(mac[i] & 0xFF);150                 sb.append(s.length() == 1 ? 0 + s : s);151             }152             return sb.toString().toUpperCase();153         } catch (Exception e) {154             return "";155         }156  157     }158 159     160     public static void main(String[] args) throws Exception {161         System.out.println(getCPUSerial());//CPU162         System.out.println(getMotherboardSN());//主板163         System.out.println(getHardDiskSN("c"));//c盘164         System.out.println(getMac());//MAC165         String msg  = getCPUSerial()+getMotherboardSN().replace(".", "")+getHardDiskSN("c")+getMac().replace("-", "");166         System.out.println("原始数据:"+msg);167         168         String encrypt = DesUtil.encrypt(msg);169         System.out.println("加密:"+encrypt);170         String decrypt = DesUtil.decrypt(encrypt);171         System.out.println("解密:"+decrypt);172     }173 }

 

转载于:https://www.cnblogs.com/sunBinary/p/9870535.html

你可能感兴趣的文章
我的友情链接
查看>>
Apache HTrace
查看>>
kafka性能测试1.0.0
查看>>
rocketmq 延迟队列 vs redis延迟队列
查看>>
Linux Kickstart无人值守安装
查看>>
AnyMap基于地图的统计图表asp.net地理统计图表控件
查看>>
MySQL基础命令入门
查看>>
form runat=server标记
查看>>
day17-编辑器vim
查看>>
PHP中使用smarty循环
查看>>
Time Semantics
查看>>
JEESNS V1.2.0-RC3 发布,Java 开源 SNS 社区系统
查看>>
Mysql学习之--数据库连接和用户管理
查看>>
EL表达式讲解
查看>>
Mysql的过程和函数(记录)
查看>>
Linux基础(三)--grep的使用和基本正则表达式
查看>>
/proc 目录中的主要文件的说明
查看>>
C#实现用XML配置MenuStrip菜单
查看>>
技术敏感度 — 基层技术管理者必备
查看>>
如何实现来电拦截及拦截后的提示音
查看>>