LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

Net跨平台硬件信息查询库 Hardware.Info:全面获取系统硬件详情

freeflydom
2025年2月13日 10:32 本文热度 272

Hardware.Info 是一个基于 .NET Standard 2.0 的跨平台库,提供了硬件信息查询的功能,支持 Windows、Linux 和 macOS 操作系统。该库通过不同平台下的系统接口获取硬件信息,包括电池、电池管理、BIOS、CPU、存储驱动、键盘、内存、显示器、主板、鼠标、网络适配器、打印机、声音卡、显卡等硬件组件的详细数据。

主要特点

跨平台支持
  • Windows:使用 Windows Management Instrumentation(WMI)来获取硬件信息。
  • Linux:通过 /dev/proc/sys 文件系统来访问硬件信息。
  • macOS:利用 sysctl 和 system_profiler 命令来查询硬件数据。
获取硬件信息
  • 电池信息:当前电池状态、容量、充电状态等。
  • BIOS:BIOS 版本、厂商等信息。
  • CPU 处理器:包括处理器型号、架构、核心数量、频率等详细信息。
  • 存储驱动:磁盘驱动器型号、容量、状态等。
  • 内存:系统内存容量、使用情况等。
  • 显示器:分辨率、颜色深度、刷新率等。
  • 网络适配器:包括网络接口卡的速度、MAC 地址、IP 地址等。
  • 显卡:显卡型号、内存、驱动信息等。

获取硬件信息

第一步,老规矩,先安装

Install-Package Hardware.Info
using Hardware.Info;
using System.Net.NetworkInformation;
static IHardwareInfo hardwareInfo;
static void Main(string[] args)
{
    try
    {
        hardwareInfo = new HardwareInfo();
        //hardwareInfo.RefreshOperatingSystem();
        //.....
        //刷新所有硬件信息
        hardwareInfo.RefreshAll();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex);
    }
    Console.WriteLine("输出操作系统信息" + Environment.NewLine);
    Console.WriteLine(hardwareInfo.OperatingSystem);
    Console.WriteLine("输出内存状态信息" + Environment.NewLine);
    Console.WriteLine(hardwareInfo.MemoryStatus);
    Console.WriteLine("输出电池信息" + Environment.NewLine);
    foreach (var hardware in hardwareInfo.BatteryList)
        Console.WriteLine(hardware);
    Console.WriteLine("输出 BIOS 信息" + Environment.NewLine);
    foreach (var hardware in hardwareInfo.BiosList)
        Console.WriteLine(hardware);
    Console.WriteLine("输出计算机系统信息" + Environment.NewLine);
    foreach (var hardware in hardwareInfo.ComputerSystemList)
        Console.WriteLine(hardware);
    Console.WriteLine("输出 CPU 信息" + Environment.NewLine);
    foreach (var cpu in hardwareInfo.CpuList)
    {
        Console.WriteLine(cpu);
        Console.WriteLine("输出 CPU 核心信息" + Environment.NewLine);
        foreach (var cpuCore in cpu.CpuCoreList)
            Console.WriteLine(cpuCore);
    }
    Console.WriteLine("输出磁盘驱动器信息" + Environment.NewLine);
    foreach (var drive in hardwareInfo.DriveList)
    {
        Console.WriteLine(drive);
        Console.WriteLine("输出驱动器分区信息" + Environment.NewLine);
        foreach (var partition in drive.PartitionList)
        {
            Console.WriteLine(partition);
            Console.WriteLine("输出分区卷信息" + Environment.NewLine);
            foreach (var volume in partition.VolumeList)
                Console.WriteLine(volume);
        }
    }
    Console.WriteLine("输出键盘信息" + Environment.NewLine);
    foreach (var hardware in hardwareInfo.KeyboardList)
        Console.WriteLine(hardware);
    Console.WriteLine("输出内存信息" + Environment.NewLine);
    foreach (var hardware in hardwareInfo.MemoryList)
        Console.WriteLine(hardware);
    Console.WriteLine("输出显示器信息" + Environment.NewLine);
    foreach (var hardware in hardwareInfo.MonitorList)
        Console.WriteLine(hardware);
    Console.WriteLine("输出主板信息" + Environment.NewLine);
    foreach (var hardware in hardwareInfo.MotherboardList)
        Console.WriteLine(hardware);
    Console.WriteLine("输出鼠标信息" + Environment.NewLine);
    foreach (var hardware in hardwareInfo.MouseList)
        Console.WriteLine(hardware);
    Console.WriteLine("输出网络适配器信息" + Environment.NewLine);
    foreach (var hardware in hardwareInfo.NetworkAdapterList)
        Console.WriteLine(hardware);
    Console.WriteLine("输出打印机信息" + Environment.NewLine);
    foreach (var hardware in hardwareInfo.PrinterList)
        Console.WriteLine(hardware);
    Console.WriteLine("输出声音设备信息" + Environment.NewLine);
    foreach (var hardware in hardwareInfo.SoundDeviceList)
        Console.WriteLine(hardware);
    Console.WriteLine("输出显卡信息" + Environment.NewLine);
    foreach (var hardware in hardwareInfo.VideoControllerList)
        Console.WriteLine(hardware);
    Console.WriteLine("输出 Ethernet 类型并且状态为 Up 的本地 IPv4 地址" + Environment.NewLine);
    foreach (var address in HardwareInfo.GetLocalIPv4Addresses(NetworkInterfaceType.Ethernet, OperationalStatus.Up))
        Console.WriteLine(address);
    Console.WriteLine();
    Console.WriteLine("输出 Wireless80211 类型的本地 IPv4 地址" + Environment.NewLine);
    foreach (var address in HardwareInfo.GetLocalIPv4Addresses(NetworkInterfaceType.Wireless80211))
        Console.WriteLine(address);
    Console.WriteLine();
    Console.WriteLine("输出状态为 Up 的网络接口卡的本地 IPv4 地址" + Environment.NewLine);
    foreach (var address in HardwareInfo.GetLocalIPv4Addresses(OperationalStatus.Up))
        Console.WriteLine(address);
    Console.WriteLine();
    Console.WriteLine("输出所有网络接口卡的本地 IPv4 地址" + Environment.NewLine);
    foreach (var address in HardwareInfo.GetLocalIPv4Addresses())
        Console.WriteLine(address);
    Console.WriteLine();
    Console.WriteLine("输出计算机当前时间" + Environment.NewLine);
    Console.WriteLine(DateTime.Now);
    Console.WriteLine("输出系统启动时间" + Environment.NewLine);
    Console.WriteLine(Environment.TickCount);
}

字段对照表

以项目为准,仅供参考,项目地址:https://github.com/hardware-info/hardware-info

字段描述
OperatingSystem操作系统信息,如操作系统版本和名称。
MemoryStatus内存状态信息,描述系统当前内存的使用情况。
BatteryList电池信息,列出计算机系统中所有电池的状态。
BiosListBIOS 信息,列出计算机系统中的所有 BIOS 版本和设置。
ComputerSystemList计算机系统信息,提供计算机硬件配置的详细信息。
CpuListCPU 信息,列出系统中所有的 CPU 和相关信息。
CpuCoreListCPU 核心信息,列出每个 CPU 核心的详细信息。
DriveList硬盘驱动器信息,列出计算机系统中的所有硬盘驱动器。
PartitionList磁盘分区信息,列出每个硬盘驱动器的分区情况。
VolumeList分区卷信息,列出每个磁盘分区下的卷(文件系统)信息。
KeyboardList键盘信息,列出计算机系统中的所有键盘设备。
MemoryList内存条信息,列出计算机系统中所有内存模块的状态。
MonitorList显示器信息,列出系统中连接的所有显示器。
MotherboardList主板信息,列出计算机系统中的主板信息。
MouseList鼠标信息,列出计算机系统中的所有鼠标设备。
NetworkAdapterList网络适配器信息,列出计算机系统中所有网络适配器(如以太网适配器、Wi-Fi适配器等)。
PrinterList打印机信息,列出计算机系统中的所有连接打印机。
SoundDeviceList声音设备信息,列出计算机系统中的所有音频设备。
VideoControllerList显卡信息,列出计算机系统中的所有显卡及相关信息。
GetLocalIPv4Addresses()获取本地计算机的 IPv4 地址信息,根据网络接口类型(如以太网、无线网卡等)筛选。
NetworkInterfaceType网络接口类型,指示硬件的网络连接类型,如以太网或无线网卡。
OperationalStatus网络接口的操作状态,如 “Up” 表示已连接, “Down” 表示未连接。

总结

Hardware.Info 是一个强大的跨平台硬件信息查询库,支持 Windows、Linux 和 macOS 操作系统,能方便地获取多种硬件信息。尽管存在一些已知问题,比如首次查询的延迟和部分数据无效的情况,但通过合适的配置和方法,可以有效解决这些问题,提供了强大的硬件信息获取能力。

转自https://www.cnblogs.com/netcore5/p/18711795


该文章在 2025/2/13 10:32:20 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved