package com.gstarcad.fei.util;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileWriter;

import java.io.InputStreamReader;

import java.io.LineNumberReader;

/**

*

* @author Goofy

* @Date 2015年7月7日 下午3:52:56

*/

public class HardwareUtils {

/**

* 获取主板序列号

*

* @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";

// + " 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();

}

/**

* 获取MAC地址,使用前请修改,只适合中文系统,并且名称为以太网适配器的网卡地址

*/

@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 (java.io.IOException e) {

System.err.println("IOException " + e.getMessage());

}

return result;

}

public static void main(String[] args) {

System.out.println("CPU序列号:"+getCPUSerial());

}

}

java获取机器序列号_Java后台实现查询电脑本机CPU序列号工具类相关推荐

  1. 如何查询电脑本机出厂序列号

    [WIN]+[R]快捷键输入[cmd]回车,输入[wmic bios get serialnumber]回车,可以查看产品序列号Serial Number.

  2. JAVA获取机器的MAC地址

    JAVA获取机器的MAC地址 需求:获取机器的mac地址 问题:一些国产操作系统获取不到MAC地址,以下搜集了一些获取mac地址的方法 1.获取MAC地址 ps:该方法在银河麒麟中可用 public ...

  3. 银联银行卡卡号java_编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类...

    编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类 编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类,银联借记卡号是一个 19 位的数字,卡号以"62" ...

  4. JS获取本机IP的工具类

    JS获取本机IP的工具类 /*** 获取ip地址*/ export function getUserIP(onNewIP) { // onNewIp - 回调函数//兼容for firefox and ...

  5. 查询电脑本机ip地址 区分内网外网

    查询电脑本机ip地址 区分内网外网 文章目录 查询电脑本机ip地址 区分内网外网 一.查询本机ip地址 内网ip 方法1 方法2 二.查询本机ip地址 外网ip 总结 一.查询本机ip地址 内网ip ...

  6. java获取机器序列号_纯java获取CPU序列号,生成机器码

    用于生成机器码 感觉用mac不靠谱,因为mac能改, (除CPU序列号外,还可以获得主板序列号.) public static void main(String[] args) { // TODO A ...

  7. java获取法定节假日_java 获取n个工作日后的日期(包含法定节假日、双休日、节后补班)...

    1.说明: 获取n个工作日后的日期(包含法定节假日.双休日.节后补班),需要在数据库手动入库当年的法定节假日及节假日调休补班.(也可写在配置文件中读取) 2.工具类代码 import java.tex ...

  8. java获取机器的IP

    在web容器中,一般我们需要获取IP都是通过request来取得. 现在没有HttpRequest,那么如何获取机器IP呢? 刚开始我们下面的代码来获取,发现在linu上取出来的IP都是127.0.0 ...

  9. java 获取区间随机数_Java获取随机数的3种方法

    主要介绍了Java获取随机数的3种方法,主要利用random()函数来实现 方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1))例: (int)(1+Math.rando ...

  10. java 获取区间随机数_Java获取随机数的几种方法

    随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串.数字.或者随即生成一个不定长度的数字.或者进行一个模拟的随机选择等等.Java提供了最基本的工具,可以帮助开发者来实现这一切. 一.Jav ...

最新文章

  1. easyui 页面加载闪现问题 解决方法
  2. FIO工具测试延迟、带宽、IOPS
  3. iphone导出照片到电脑_iPhone里的照片如何快速导入电脑
  4. 利用HttpWebRequest实现实体对象的上传
  5. HDU 4553:约会安排(区间合并)
  6. CI加载model的问题
  7. mzy git学习,分支冲突,以及冲突解决(五)
  8. 双机热备系统的方案与软件浅析
  9. cf. (E) Thematic Contests
  10. 代码坏味道类型和解决方法简介
  11. 屏幕录像软件有哪些?操作简单的屏幕录像方法推荐
  12. unity3dk帧_Unity K帧动画
  13. Interlaced Sparse Self-Attention for Semantic Segmentation
  14. word另存为的快捷键
  15. 笔记本连接html后分成两个屏,笔记本电脑关掉自带显示屏,外接两个显示器做分屏的实现方法。...
  16. 英文版Ubuntu16.04安装fcitx-googlepinyin
  17. cesium实现三维空间量测功能
  18. 超实用的浏览器插件:CSDN全站去广告
  19. 简单实用的JavaWeb微投票系统
  20. 马云台大演讲:这世界观点很多 请坚持自己思考

热门文章

  1. 阿里电话面试题(附答案)
  2. 带权二部图匹配(KM算法)讲解及Matlab实现
  3. Android 使用VelocityTracker来获取滑动速度
  4. c语言搜索算法伪代码,FFT算法伪代码
  5. textpattern 在 nginx 上的 rewrite 规则
  6. 个人读研期间常用小工具分享
  7. 中证登 中债登 上清所 证券清算 证券账户 资金账户
  8. php多语言商城,Ecshop商城多国语言修改方法
  9. linux生成手机号码字典,字典生成器,木头超级字典生成器
  10. 小管家进销存_36氪首发 | 进销存SaaS提供商 「来肯云商」 获数百万美金A轮融资,要做“ERP+微商城 ”的一体化产品...