• 获取主板序列号 cpu序列号,硬盘序列号,MAC地址


    转载:http://www.cnblogs.com/jifeng/archive/2012/12/05/2802632.html

    package javautil.harddisk;

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.InputStreamReader;
    import java.io.LineNumberReader;

    /**
    * 获取主板序列号 cpu序列号,硬盘序列号,MAC地址
    * @author windpower3
    *
    */
    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") "
    + "Set colItems = objWMIService.ExecQuery _ "
    + " ("Select * from Win32_BaseBoard") "
    + "For Each objItem in colItems "
    + " Wscript.Echo objItem.SerialNumber "
    + " exit for ' do the first cpu only! " + "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();
    } 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") "
    + "Set colDrives = objFSO.Drives "
    + "Set objDrive = colDrives.item(""
    + drive
    + "") "
    + "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") "
    + "Set colItems = objWMIService.ExecQuery _ "
    + " ("Select * from Win32_Processor") "
    + "For Each objItem in colItems "
    + " Wscript.Echo objItem.ProcessorId "
    + " exit for ' do the first cpu only! " + "Next ";

    // + " exit for " + "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地址
    */
    public static String getMac() {
    String result = "";
    try {

    Process process = Runtime.getRuntime().exec("ipconfig /all");

    InputStreamReader ir = new InputStreamReader(
    process.getInputStream());

    LineNumberReader input = new LineNumberReader(ir);

    String line;

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

    if (line.indexOf("Physical Address") > 0) {

    String MACAddr = line.substring(line.indexOf("-") - 2);

    result = MACAddr;

    }

    } catch (java.io.IOException e) {

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

    }
    return result;
    }

    public static void main(String[] args) {
    System.out.println("CPU SN:" + HardWareUtils.getCPUSerial());
    System.out.println("主板 SN:" + HardWareUtils.getMotherboardSN());
    System.out.println("C盘 SN:" + HardWareUtils.getHardDiskSN("c"));
    System.out.println("MAC SN:" + HardWareUtils.getMac());
    }
    }

  • 相关阅读:
    Angular1.0
    当今流行的 React.js 适用于怎样的 Web App?
    bower的权限问题
    淡定啊淡定
    JBoss for luna
    JQuery的二维码插件
    今天学人家玩云主机
    laravel5.2/laravel5.3入门指南 Windows 上快速安装并运行 Laravel 5.x
    验证mySqli扩展是否
    Amazon EC2 的名词解释
  • 原文地址:https://www.cnblogs.com/gwq369/p/5387038.html
Copyright © 2020-2023  润新知