`

JAVA读取硬件信息(MAC地址,CPU号,硬盘卷标,CPU型号及CPU使用率等信息)

    博客分类:
  • java
阅读更多
在发布新版的MYPM时,加密要用到相关硬件信息,于是写了下面的测试类

运行main 打印信息如下图


需要引用的包sigar-1.6.3.jar

及相关动态库 测试时我加载了sigar自带所有动态库

详见main方法内



package cn.com.mypm.common.util;

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

import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.SigarLoader;
import org.hyperic.sigar.cmd.Shell;
import org.hyperic.sigar.cmd.SigarCommandBase;


public class CpuInfo extends SigarCommandBase {

    public boolean displayTimes = true;

    public CpuInfo(Shell shell) {
        super(shell);
    }

    public CpuInfo() {
        super();
    }

    public String getUsageShort() {
        return "Display cpu information";
    }

    private void output(CpuPerc cpu) {
        println("User Time....." + CpuPerc.format(cpu.getUser()));
        println("Sys Time......" + CpuPerc.format(cpu.getSys()));
        println("Idle Time....." + CpuPerc.format(cpu.getIdle()));
        println("Wait Time....." + CpuPerc.format(cpu.getWait()));
        println("Nice Time....." + CpuPerc.format(cpu.getNice()));
        println("Combined......" + CpuPerc.format(cpu.getCombined()));
        println("Irq Time......" + CpuPerc.format(cpu.getIrq()));
        if (SigarLoader.IS_LINUX) {
            println("SoftIrq Time.." + CpuPerc.format(cpu.getSoftIrq()));
            println("Stolen Time...." + CpuPerc.format(cpu.getStolen()));
        }
        println("");
    }

    public void output(String[] args) throws SigarException {
        org.hyperic.sigar.CpuInfo[] infos = this.sigar.getCpuInfoList();

        CpuPerc[] cpus = this.sigar.getCpuPercList();

        org.hyperic.sigar.CpuInfo info = infos[0];
        long cacheSize = info.getCacheSize();
        println("Vendor........." + info.getVendor());
        println("Model.........." + info.getModel());
        println("Mhz............" + info.getMhz());
        println("Total CPUs....." + info.getTotalCores());
        if ((info.getTotalCores() != info.getTotalSockets()) || (info.getCoresPerSocket() > info.getTotalCores())) {
            println("Physical CPUs.." + info.getTotalSockets());
            println("Cores per CPU.." + info.getCoresPerSocket());
        }
        if (cacheSize != Sigar.FIELD_NOTIMPL) {
            println("Cache size...." + cacheSize);
        }
        println("");
        if (!this.displayTimes) {
            return;
        }
        for (int i = 0; i 0)
            sb.append("第一个网卡号="+sigar.getNetInterfaceConfig(interfaces[0]).getHwaddr());

        org.hyperic.sigar.FileSystem[] filesystems = sigar.getFileSystemList();
        if(filesystems!=null || filesystems.length>0)
            sb.append("\n"+"硬盘第一个分区的卷标="+getHDSerial(filesystems[1].getDevName()));
      
        System.out.println(sb.toString());
    }

    public static void main(String[] args) throws Exception {
        //先加载siga动太库在不同的平台只要加载特定的动态库,这里我就全加载不区分了
        //在IDE环境中,可以不加载动态库 设置natinve lib patch location 既可
        File nativeDir = new File("E:\\mypm10_new\\mypmdoc\\WebRoot\\WEB-INF\\native");
        File[] libs = nativeDir.listFiles();
        for (int i = 0; i
  • 大小: 27.8 KB
分享到:
评论

相关推荐

    c#获取网卡MAC地址,主板信息,CPU序列号,硬盘卷标……代码

    在C#编程中,获取计算机硬件的详细信息是常见的需求,比如网卡MAC地址、主板信息、CPU序列号以及硬盘卷标等。这些信息对于软件的授权验证、系统监控或者故障排查都非常重要。下面我们将详细讲解如何使用C#来获取这些...

    获取cpu序列号硬盘卷标(正规码)

    在IT领域,获取计算机硬件的信息,如CPU序列号和硬盘卷标,是常见的系统管理和故障排查操作。这些信息对于诊断问题、验证硬件合法性以及软件授权等具有重要意义。下面将详细介绍如何获取这些信息,并探讨相关技术。 ...

    C++ 读取硬盘序列号、驱动类型、卷标等

    本主题涉及的是如何使用C++来获取硬盘的相关信息,包括硬盘序列号、驱动类型以及卷标。这些信息在系统管理和软件开发中非常有用,例如在数据恢复、系统监控或硬件认证场景下。 首先,我们需要理解硬盘的基本概念。...

    获取windows系统的基本信息,比如cpu,硬盘,用户,ip 等基本信息(vs2010)

    本文将详细讲解如何利用C++在Windows系统上获取CPU使用率、硬盘信息、用户信息、IP地址、MAC地址、系统版本、开机时间和网络速度等关键数据。 首先,获取CPU使用率通常涉及使用Windows API中的性能计数器功能。`pdh...

    VB6读取硬盘物理序列号/逻辑序列号/CPU序列号/主板序列号

    通常,需要使用如`RegRead` API函数来读取注册表中的相关信息。例如,可以在`HKEY_LOCAL_MACHINE\Hardware\Description\System\BIOS`下的`SystemSerialNumber`键中找到主板序列号。 ```vb Private Declare Function...

    硬盘卷标序列号修改工具

    在Windows操作系统中,硬盘卷标是用户为区分不同硬盘分区而设置的个性化名称,而序列号则是硬盘制造商分配给每个硬盘的独特标识,通常用于识别和追踪硬件。 "硬盘卷标序列号修改工具"是一款专门针对这一需求设计的...

    Delphi-DiskSN-CPU-BIOS.rar_Delphi CPU 硬盘_delphi 硬盘_disksn delp

    它包含了一套用Delphi编程语言编写的源代码,能够帮助开发者获取电脑的逻辑硬盘号、物理硬盘号、CPU序列号以及BIOS编号等关键信息。 首先,让我们深入理解这些概念: 1. **逻辑硬盘号**:也称为卷标或卷ID,是操作...

    VB硬盘信息显示与卷标设定

    摘要:VB源码,系统相关,硬盘,卷标  VB编写的一个与硬盘属性信息读取的小程序,硬盘信息的显示与卷标的设定,调用GetVolumeInformation函数,获得所选盘符的卷标、分区格式信息,变量i的值在大写字母A到大写字母Z...

    查看硬盘的物理、逻辑序列号和CPU序列号等

    获取硬盘物理序列号的方法多种多样,包括使用命令行工具如Windows的`diskpart`或Linux的`hdparm`,或者使用专门的硬件信息检测软件。例如,`Hardware_IDExtractor.exe`可能就是一个这样的工具,它能提取并显示计算机...

    C#根据CPU硬盘获取机器码源码

    在IT行业中,机器码通常指的是计算机硬件的唯一标识,它基于CPU、硬盘等硬件信息生成。这个"C#根据CPU硬盘获取机器码源码"的项目是关于如何在C#编程环境中,通过读取系统硬件信息来创建一个独特的标识符,这在软件...

    VC 枚举(获取)系统硬件信息.rar

    本压缩包"VC 枚举(获取)系统硬件信息.rar"包含了实现这一功能的源码,主要关注声卡、显卡、CPU、内存、键盘、总线设备、硬盘和主板等硬件组件的信息获取。 首先,我们要讨论的是CPU信息的获取。在Windows系统中,...

    获取cpuid mac 硬盘分区ID 硬盘分区GUID

    在IT领域,获取计算机硬件和系统信息是常见需求,其中包括CPU ID、MAC地址、硬盘分区ID和硬盘分区GUID。这些信息对于系统管理、故障排查、软件授权和安全防护等方面都有重要作用。下面将详细讲解这些概念及其获取...

    读取计算机信息IP地址,计算机名,硬盘

    以上就是如何使用DLL封装和调用读取计算机IP地址、计算机名及硬盘信息的方法。在实际应用中,需要注意错误处理、内存管理和跨平台兼容性等问题。通过这种方式,开发者可以轻松地在各种应用程序中复用这些功能,提高...

    如何获取硬盘卷标、序列号和文件系统类型?

    在计算机硬件管理和软件开发领域,了解如何通过编程手段获取硬盘的卷标、序列号及文件系统类型是非常重要的技能之一。这些信息对于诊断问题、进行系统配置以及实现某些特定功能(如磁盘管理工具)时非常有用。本文将...

    Delphi取硬件信息

    例如,可以创建一个`THardwareInfo`类,包含获取CPU、内存、硬盘、显卡等方法,使得在程序中调用这些硬件信息变得简单。 需要注意的是,进行硬件信息获取时应确保权限足够,并处理可能的异常情况,如API调用失败或...

    labview读取硬盘序列号,不是分区号

    与分区号不同,分区号是指硬盘上逻辑存储区域的标识,一个硬盘可以有多个分区,每个分区都有自己的卷标和驱动器字母,但只有一个序列号。 在软件加密领域,硬盘序列号可以作为软件授权验证的一个因素。通过将软件...

    硬盘卷标修改器(无毒)

    方便修改硬盘分区序列号,win10可用。

    获得主板ID,硬盘物理ID,网卡物理地址的DLL.rar_主板的ID_物理地址.dll_硬盘id_硬盘物理ID_网卡物理地址的D

    本压缩包“获得主板ID,硬盘物理ID,网卡物理地址的DLL.rar”提供了DLL动态链接库文件,用于帮助程序员或系统管理员便捷地获取这些关键硬件信息。 首先,我们来详细了解每个硬件标识: 1. **主板ID**:主板ID通常是...

Global site tag (gtag.js) - Google Analytics