一种硬件检测自动报警的方法及装置 技术领域 本发明涉及硬件配置信息处理的技术领域, 特别是涉及一种硬件检测自动报警的 方法, 以及, 一种硬件检测自动报警的装置。
背景技术 目前, 人们在购买用户设备、 优化用户设备配置、 了解用户设备的应用环境等诸多 需求中需要详细了解用户设备的硬件信息, 例如 CPU、 主板、 内存、 显卡、 显示器、 硬盘、 网卡、 声卡, 以及所有接入的 USB 设备等信息。
现有技术中, 一些操作系统为用户提供了查看主要硬件信息的工具, 如 Windows 系统的 “设备管理器” 和 “系统信息” 工具。但不法商家可能会对此信息进行修改, 例如, 原 本 CPU 的主频是 800Mhz, 而通过操作系统进行检测时, 显示 CPU 的主频可能是 1066Mhz, 如 此, 操作系统获得信息与设备的真实信息并不一致。用户不知如何获取真实的设备信息的 情况下, 并不能获得自己所需要的设备。
另外, 管理员对其所在局域网的用户设备进行管理时, 若用户设备中被更换了硬 件, 而服务器预存的对应的硬件信息并没有改变, 这时, 管理员并不知道其硬件的真实信 息, 从而无法对这些用户设备进行有效管理。
因此, 目前需要本领域技术人员迫切解决的一个技术问题就是 : 提供一种硬件检 测自动报警的机制, 从而可以获知当前设备所描述的硬件信息与其真实硬件信息是否一 致。
发明内容 本发明所要解决的技术问题是提供一种硬件检测自动报警的方法, 使用户直接获 知所用设备的描述与其真实信息是否一致。
本发明还提供了一种硬件检测自动报警的装置, 用以保证上述方法在实际中的应 用及实现。
为了解决上述问题, 本发明实施例公开了一种硬件检测自动报警的方法, 包括 :
通过访问用户设备的底层硬件, 作为硬件信息获取的第一来源, 获得当前用户设 备的硬件信息 ;
从硬件信息获取的第二来源, 获取相同用户设备的硬件信息, 所述第二来源为与 第一来源不同的硬件信息获取源 ;
对比所述第一来源的硬件信息与第二来源的硬件信息是否一致 ;
若否, 则生成报警提示。
优选的, 所述从硬件信息获取的第二来源, 获取相同用户设备的硬件信息的步骤 包括 :
获取用户设备所安装的操作系统反馈的硬件信息。
优选的, 所述从硬件信息获取的第二来源, 获取相同用户设备的硬件信息的步骤
包括 : 访问用户设备所安装的 Windows 操作系统的应用程序接口 API 或 Windows 管理规 范 WMI, 以及, 硬件驱动程序, 获得当前用户设备的硬件信息。
优选的, 所述用户设备具有终端标识, 所述从硬件信息获取的第二来源, 获取相同 用户设备的硬件信息的步骤包括 :
根据所述终端标识从服务器端获取其预存的对应用户设备的硬件信息。
优选的, 所述对比第一来源的硬件信息与第二来源的硬件信息是否一致的操作, 以及, 生成报警提示的操作由服务器完成, 所述方法还包括 :
将所述第一来源的硬件信息, 以及, 所述第二来源的硬件信息上传至服务器。
优选的, 所述对比第一来源的硬件信息与第二来源的硬件信息是否一致的操作, 以及, 生成报警提示的操作由服务器完成, 所述方法还包括 :
将所述第一来源的硬件信息及对应用户设备的终端标识上传至服务器。
优选的, 所述对比第一来源的硬件信息与第二来源的硬件信息是否一致的操作, 以及, 生成报警提示的操作在当前用户设备上完成。
优选的, 所述用户设备具有终端标识, 所述方法还包括 :
若所述第一来源的硬件信息与第二来源的硬件信息一致, 则根据所述终端标识从 服务器端获取其预存的对应用户设备的硬件信息 ;
将所述第一来源的硬件信息或第二来源的硬件信息, 与所述服务器预存的硬件信 息进行对比, 若不一致, 则生成报警提示。
优选的, 所述方法还包括 :
若所述第一来源的硬件信息与第二来源的硬件信息一致, 则获取用户设备所安装 的操作系统反馈的硬件信息 ;
将所述第一来源的硬件信息或第二来源的硬件信息, 与所述操作系统反馈的硬件 信息进行对比, 若不一致, 则生成报警提示。
优选的, 所述方法还包括 :
若所述第一来源的硬件信息与第二来源的硬件信息一致, 则通过访问用户设备所 安装的 Windows 操作系统的应用程序接口 API 或 Windows 管理规范 WMI, 以及, 硬件驱动程 序, 获得当前用户设备的硬件信息 ;
将所述第一来源的硬件信息或第二来源的硬件信息, 与所获得的硬件信息进行对 比, 若不一致, 则生成报警提示。
优选的, 所述通过访问用户设备的底层硬件, 作为硬件信息获取的第一来源, 获得 当前用户设备的硬件信息的步骤包括 :
访问底层硬件, 获得用户设备中的硬件标识信息 ;
依据所述硬件标识信息, 在预置的硬件信息库中提取对应的硬件参数信息。
优选的, 所述硬件标识信息包括厂商 ID 与硬件设备 ID, 所述底层硬件包括系统总 线、 系统管理基本输入输出系统 SMBIOS 和 / 或外设端口, 所述访问底层硬件的步骤具体包 括:
遍历系统总线, 所述系统总线包括外设部件互连 PCI 总线、 系统管理 SMBUS 总线、 I2C 总线和 / 或工业标准结构 ISA 总线 ;
和 / 或, 读取系统管理基本输入输出系统 SMBIOS 的信息 ; 和 / 或, 访问外设端口, 发起与对应外设的 I/O 操作。 优选的, 所述方法还包括 : 依据所述用户设备第一来源的硬件信息, 更新服务器端预存的对应用户设备的硬件信息。 本发明还提供了一种硬件检测自动报警的装置, 包括 :
第一来源硬件信息获取模块, 用于通过访问用户设备的底层硬件, 作为硬件信息 获取的第一来源, 获得当前用户设备的硬件信息 ;
第二来源硬件信息获取模块, 用于从硬件信息获取的第二来源, 获取相同用户设 备的硬件信息 ; 所述第二来源为与第一来源不同的硬件信息获取源 ;
硬件信息对比模块, 用于对比所述第一来源的硬件信息与第二来源的硬件信息是 否一致 ;
报警模块, 用于若否, 则生成报警提示。
优选的, 所述第二来源硬件信息获取模块包括 :
系统硬件信息获取子模块, 用于获取用户设备所安装的操作系统反馈的硬件信 息。
优选的, 所述第二来源硬件信息获取模块包括 :
系统接口硬件信息获取子模块, 用于访问用户设备所安装的 Windows 操作系统的 应用程序接口 API 或 Windows 管理规范 WMI, 以及, 硬件驱动程序, 获得当前用户设备的硬件 信息。
优选的, 所述用户设备具有终端标识, 所述第二来源硬件信息获取模块包括 :
终端标识硬件信息获取子模块, 用于根据所述终端标识从服务器端获取其预存的 对应用户设备的硬件信息。
优选的, 所述硬件信息对比模块, 以及, 报警模块由服务器完成, 所述装置还包 括:
信息上传模块, 用于将所述第一来源的硬件信息, 以及, 所述第二来源的硬件信息 上传至服务器。
优选的, 所述硬件信息对比模块, 以及, 报警模块由服务器完成, 所述装置还包 括:
终端标识上传模块, 用于将所述第一来源的硬件信息及对应用户设备的终端标识 上传至服务器。
优选的, 所述硬件信息对比模块, 以及, 报警模块在当前用户设备上完成。
优选的, 所述用户设备具有终端标识, 所述装置还包括 :
预存信息获取模块, 用于若所述第一来源的硬件信息与第二来源的硬件信息一 致, 则根据所述终端标识从服务器端获取其预存的对应用户设备的硬件信息 ;
预存信息对比模块, 用于将所述第一来源的硬件信息或第二来源的硬件信息, 与 所述服务器预存的硬件信息进行对比, 若不一致, 则生成报警提示。
优选的, 所述装置还包括 :
操作系统信息获取模块, 用于若所述第一来源的硬件信息与第二来源的硬件信息
一致, 则获取用户设备所安装的操作系统反馈的硬件信息 ;
操作系统信息对比模块, 用于将所述第一来源的硬件信息或第二来源的硬件信 息, 与所述操作系统反馈的硬件信息进行对比, 若不一致, 则生成报警提示。
优选的, 所述装置还包括 :
操作系统接口信息获取模块, 用于若所述第一来源的硬件信息与第二来源的硬件 信息一致, 则通过访问用户设备所安装的 Windows 操作系统的应用程序接口 API 或 Windows 管理规范 WMI, 以及, 硬件驱动程序, 获得当前用户设备的硬件信息 ;
操作系统接口信息对比模块, 用于将所述第一来源的硬件信息或第二来源的硬件 信息, 与所获得的硬件信息进行对比, 若不一致, 则生成报警提示。
优选的, 所述第一来源硬件信息获取模块包括 :
底层硬件访问子模块, 用于访问底层硬件, 获得用户设备中的硬件标识信息 ;
硬件参数信息提取子模块, 用于依据所述硬件标识信息, 在预置的硬件信息库中 提取对应的硬件参数信息。
优选的, 所述硬件标识信息包括厂商 ID 与硬件设备 ID, 所述底层硬件包括系统总 线、 系统管理基本输入输出系统 SMBIOS 和 / 或外设端口, 所述底层硬件访问子模块具体包 括: 系统总线遍历子模块, 用于遍历系统总线, 所述系统总线包括外设部件互连 PCI 总线、 系统管理 SMBUS 总线、 I2C 总线和 / 或工业标准结构 ISA 总线 ;
和 / 或, 主板信息读取子模块, 用于读取系统管理基本输入输出系统 SMBIOS 的信 息;
和 / 或, 外设端口访问子模块, 用于访问外设端口, 发起与对应外设的 I/O 操作。
优选的, 所述装置还包括 :
硬件信息更新模块, 用于依据所述用户设备第一来源的硬件信息, 更新服务器端 预存的对应用户设备的硬件信息。
与现有技术相比, 本发明具有以下优点 :
本发明通过直接访问底层硬件可以获得最为真实、 准确、 客观的硬件参数信息, 并 将该硬件信息与通过操作系统、 操作系统的应用程序接口 API 或 Windows 管理规范 WMI 获 得的硬件信息进行对比, 在信息不一致的情况下向用户发出报警提示, 由此, 可以帮助用户 了解设备的真实配置, 有效防止用户被不法商贩所蒙骗。
另外, 本发明还对比通过访问底层硬件获取的硬件信息与预存在服务器中的硬件 信息是否一致, 在不一致的情况下对服务器中预存的硬件信息进行修改, 方便了管理员对 其所在局域网的多台用户设备进行有效管理。
附图说明
图 1 是本发明的一种硬件检测自动报警的方法实施例 1 的步骤流程图 ;
图 2 是本发明的一种硬件检测自动报警的方法实施例 2 的步骤流程图 ;
图 3 是本发明的一种硬件检测自动报警的方法实施例 3 的步骤流程图 ;
图 4 是本发明的一种硬件检测自动报警的方法实施例 4 的步骤流程图 ;
图 5 是本发明的一种硬件检测自动报警的装置实施例 1 的结构框图 ;图 6 是本发明的一种硬件检测自动报警的装置实施例 2 的结构框图 ; 图 7 是本发明的一种硬件检测自动报警的装置实施例 3 的结构框图 ; 图 8 是本发明的一种硬件检测自动报警的装置实施例 4 的结构框图。具体实施方式
为使本发明的上述目的、 特征和优点能够更加明显易懂, 下面结合附图和具体实 施方式对本发明作进一步详细的说明。
对于现有技术而言, 用户可以通过操作系统查看当前设备的硬件信息, 如 Windows 系统的 “设备管理器” 和 “系统信息” 工具。而实际中, 不法商家可能会对操作系统显示的 信息进行修改, 使操作系统获取的信息与该设备的实际信息不一致, 用户无法获知该设备 的真实硬件信息的情况下并不能获得自己所需的设备。
本发明实施例的核心构思之一在于, 检测用户的装机配置信息, 通过访问用户设 备的底层硬件获取当前用户设备的第一来源的硬件信息, 若此硬件信息与用户设备的第二 来源的硬件信息不一致, 则生成报警提示, 使用户直接获知所用设备的描述与其真实信息 是否一致。
参考图 1, 示出了本发明的一种硬件检测自动报警的方法实施例 1 的步骤流程图, 具体可以包括以下步骤 :
步骤 101、 通过访问用户设备的底层硬件, 作为硬件信息获取的第一来源, 获得当 前用户设备的硬件信息。
在本发明的一种优选实施例中, 所述步骤 101 可以包括 :
子步骤 S11、 访问底层硬件, 获得用户设备中的硬件标识信息。
在具体的实现中, 所述硬件标识信息可以包括厂商 ID 与硬件设备 ID, 所述底层硬 件包括系统总线、 系统管理基本输入输出系统 SMBIOS 和 / 或外设端口, 所述子步骤 S11 具 体可以包括 :
子步骤 S11-1、 遍历系统总线, 所述系统总线包括外设部件互连 PCI 总线、 系统管 理 SMBUS 总线、 I2C 总线和 / 或工业标准结构 ISA 总线 ;
子步骤 S11-2、 和 / 或, 读取系统管理基本输入输出系统 SMBIOS 的信息 ;
子步骤 S11-3、 和 / 或, 访问外设端口, 发起与对应外设的 I/O 操作。
例如, 可以通过遍历 PCI 总线读取主板上 PCI 设备的信息, 以及读取 SMBIOS 主板 信息检测到主板的厂商 ID 及硬件设备 ID。或者, 可以通过遍历 PCI 总线读取 PCI 设备上的 显卡类别数据检测到的显卡的厂商 ID 及硬件设备 ID。或者, 可以采用 SetupAPI 的方式访 问外设端口, 发起与外设端口的 I/O 操作请求判断是否连接有外设, 如收到外设针对该请 求返回的信息, 则进一步向该外设发送信息获取请求, 然后接收外设返回的厂商 ID 及硬件 设备 ID。
例如, 对于 CPU、 内存、 硬盘或光驱等硬件而言, 在通过读取 SMBIOS 的信息, 和 / 或, 遍历 PCI 总线、 SMBUS 总线、 I2C 总线和 ISA 总线后, 还需要进一步与对应的硬件进行指令交 互才能读出该硬件的厂商信息和标识信息。
详言之, 如要获取 CPU 的信息, 可以通过先读取 SMBIOS 信息, 然后进一步对 CPU 指 令寄存器 ( 包括 CPUID 和 MSR 寄存器 ) 进行数据分析获得。在具体实现中, 所述用户设备可以发起硬件检测请求的用户设备。当接收到所述 硬件检测请求, 针对发起所述请求的用户设备启动硬件检测驱动程序 ( 或硬件检测引擎 ), 由所述硬件检测驱动程序 ( 或硬件检测引擎 ) 访问硬件底层, 当所述用户设备为计算机时, 所访问的硬件底层具体包括 : CPU 底层访问、 SMBIOS 底层访问、 PCI 总线数据读取、 SMBUS 总 线数据读取、 ISA 总线数据读取、 IDE( 硬盘驱动器 ) 和 Smart( 自我检测、 分析、 报告技术 ) 硬盘数据读取、 SCSI( 小型计算机系统接口 ) 硬盘数据读取、 EEDID( 扩展显示标识数据 ) 显 示器数据读取、 I2C 总线数据扫描后, 查找到以下硬件的厂商 ID 及硬件 ID, 包括 CPU、 主板、 显卡、 显示器、 内存、 硬盘、 光驱、 声卡、 电池、 网卡、 鼠标键盘和 / 或摄像头。
子步骤 S12、 依据所述硬件标识信息, 在预置的硬件信息库中提取对应的硬件参数 信息。
作为一种具体应用的示例, 可以预置硬件生产厂商数据库、 硬件型号数据库、 硬件 规格数据库和 / 或硬件配置参数数据库等多个硬件信息库, 当检测到厂商 ID 及硬件设备 ID, 逐个分别在上述多个硬件信息库中匹配, 然后筛选出需要展现给用户的硬件参数信息。
作为另一种具体应用的示例, 可以预置一个硬件信息库, 该硬件信息库中具有多 条与硬件标识信息对应的硬件参数信息记录, 其中每条硬件参数信息记录中都包括硬件品 牌、 硬件名称、 硬件型号、 硬件规格和 / 或硬件配置参数等信息。 当然, 上述方法仅仅用作示例, 本领域技术人员可以依据实际需求设置取用何种 硬件标识信息, 如在只展现硬件品牌、 硬件名称的情况下, 则只取用厂商 ID, 或如, 在展现硬 件型号、 硬件规格和硬件配置参数的情况下, 则只取用硬件设备 ID, 所述硬件标识信息还可 以其它任一种客观表征用户设备中所采用硬件的相关信息, 本发明对此无需加以限制。
在实际中, 对于所取得的硬件信息可以进行合理性验证, 如果第一候选值不合法, 就采用第二候选值, 若第二候选值不合法, 就采用第三候选值, 以此类推。
步骤 102、 从硬件信息获取的第二来源, 获取相同用户设备的硬件信息, 所述第二 来源为与第一来源不同的硬件信息获取源。
需要说明的是, 在本发明实施例中, 所述从第二来源所获取到的用户设备的硬件 信息, 是客观反映当前用户设备中硬件配置情况的信息, 包括操作系统提供的硬件信息、 产 品生产商提供的设备硬件配置单等。
在本发明的一种优选的实施例中, 所述步骤 102 可以包括 : 获取用户设备所安装 的操作系统反馈的硬件信息。
现有技术中, 一些操作系统为用户提供了查看主要硬件信息的工具, 如 Windows 系统的 “设备管理器” 和 “系统信息” 工具。具体而言, 用户可以右击桌面上的 “我的电脑” , 从快捷菜单中选择 “属性” 命令打开 “系统属性” 窗口 ; 或者从控制面板中打开 “系统属性” 窗口, 切换到 “硬件” 标签页, 点击 “设备管理器” 按钮以查看当前用户设备的主要硬件信息。 或者从 Windows 系统的开始菜单中的附件选项下找到 “系统工具” , 然后选择 “系统信息” ; 或者, 在 “运行” 对话框中直接输入 “msinfo32.exe” 以查看当前用户设备的主要硬件信息。
例如, 如果用户想要查看硬盘型号和工作模式, 可以打开 “设备管理器” 窗口, 从 “磁盘处理器” 下查看当前系统中所安装的硬盘型号, 然后从 “IDE ATA/ATAPI 控制器” 下选 择一个 IDE 通道查看硬盘的工作模式。如果用户需要查看显示信息, 可以打开 “系统工具” 中 “DirectX 诊断工具→显示” 的标签页来查看显卡的名称、 制造商、 芯片类型、 DAC 类型、 内
存容量等常规显示信息, 或进一步从控制面板中打开 “显示属性→设置” 窗口查看 BIOS 版 本、 系统内存、 视频内存、 驱动程序版本、 OpenGL ICD 的 DLL 文件名和版本号等显示信息 ; 或 者打开 “系统信息→组件→显示” 窗口, 查看设备 ID、 INF 文件、 颜色表项目、 分辨率、 内存地 址等显示信息。
在本发明的另一种优选的实施例中, 所述步骤 102 可以包括 :
访问用户设备所安装的 Windows 操作系统的应用程序接口 API 或 Windows 管理规 范 WMI, 以及, 硬件驱动程序, 获得当前用户设备的硬件信息。
Windows 操 作 系 统 的 应 用 程 序 接 口 API 是 应 用 程 序 和 Windows 交 通 的 接 口, 包括几千个可调用的函数, 调用相应的函数可以得到用户设备的硬件信息。例如 : 通过 GetSysColor 判断指定 windows 显示对象的颜色 ; 通过 GetSystemPowerStatus 获得与当前 系统电源状态有关的信息 ; 通过 GetKeyboardType 了解与正在使用的键盘有关的信息 ; 通 过 GetSystemInfo 可以获取 CPU 信息。
Windows 管理规范 WMI 是一项核心的 Windows 管理技术, WMI 作为一种规范和基 础结构, 通过它可以访问、 配置、 管理和监视几乎所有的 Windows 资源, 比如用户可以在远 程计算机器上启动一个进程 ; 设定一个在特定日期和时间运行的进程 ; 远程启动计算机 ; 获得本地或远程计算机的已安装程序列表 ; 查询本地或远程计算机的 Windows 事件日志等 等。在实际操作中, 通过 WMI 提供程序代表使用者应用程序和脚本从 WMI 托管资源请求信 息, 并发送指令到 WMI 托管资源。例如 : Win32 提供程序提供关于计算机、 磁盘、 外围设备、 文件、 文件夹、 文件系统、 网络组件、 操作系统、 打印机、 进程、 安全性、 服务、 共享、 SAM 用户及 组, 以及更多资源的信息。 步骤 103、 对比所述第一来源的硬件信息与第二来源的硬件信息是否一致。
步骤 104、 若否, 则生成报警提示。
在实际中, 用户可以通过第二来源获取设备的硬件信息, 由于该信息可能会被修 改过, 所以需要将其与通过访问底层硬件获取的硬件信息进行对比, 若不一致, 说明通过第 二来源获取的硬件信息被修改过, 并非真实信息。
在本发明的一种优选的实施例中, 所述对比第一来源的硬件信息与第二来源的硬 件信息是否一致的操作, 以及, 生成报警提示的操作在当前用户设备上完成。即, 在用户当 前所用设备上对比硬件信息是否一致, 若不一致, 在用户设备的界面上生成报警提示, 用户 可以直接获知该提示。
参考图 2, 示出了本发明的一种硬件检测自动报警的方法实施例 2 的步骤流程图, 具体可以包括以下步骤 :
步骤 201、 通过访问用户设备的底层硬件, 作为硬件信息获取的第一来源, 获得当 前用户设备的硬件信息 ;
步骤 202、 从硬件信息获取的第二来源, 获取相同用户设备的硬件信息, 所述第二 来源为与第一来源不同的硬件信息获取源。
在本发明的一种优选的实施例中, 所述步骤 202 可以包括 :
获取用户设备所安装的操作系统反馈的硬件信息。
在本发明的另一种优选的实施例中, 所述步骤 202 可以包括 :
访问用户设备所安装的 Windows 操作系统的应用程序接口 API 或 Windows 管理规
范 WMI, 以及, 硬件驱动程序, 获得当前用户设备的硬件信息。
步骤 203、 将所述第一来源的硬件信息, 以及, 所述第二来源的硬件信息上传至服 务器。
在本实施例中, 所述第一来源的硬件信息与第二来源的硬件信息是否一致的操 作, 以及, 生成报警提示的操作可以由服务器完成, 在现实中可以理解为将报警提示提供给 多个用户设备的管理员, 这两个来源的硬件信息都是由系统提供, 所以需要先上传到服务 器再进行对比。
步骤 204、 对比所述第一来源的硬件信息与第二来源的硬件信息是否一致 ; 若是, 则执行步骤 205 和步骤 206 ; 若否, 则执行步骤 207。
步骤 205、 所述用户设备具有终端标识, 根据所述终端标识从服务器端获取其预存 的对应用户设备的硬件信息。
在本实施例中, 将第一来源的硬件信息与第二来源的硬件信息进行对比后, 还需 要将其与服务器端预存的对应用户设备的硬件信息进行对比。 服务器中预存了多个终端的 标识信息及其一一对应的硬件信息, 根据终端标识可以提取相应的硬件信息。
此处, 在服务器中预存的硬件信息可以是产品生产商提供的设备硬件配置单。 步骤 206、 将所述第一来源的硬件信息或第二来源的硬件信息, 与所述服务器预存 的硬件信息进行对比, 若不一致, 则生成报警提示。
通过与预存的硬件信息的比较可以得知该设备的配置信息是否为真实信息, 若不 一致, 则由服务器端发出报警提示。
步骤 207、 生成报警提示。
步骤 208、 依据所述用户设备第一来源的硬件信息, 更新服务器端预存的对应用户 设备的硬件信息。
若第一来源的硬件信息, 即通过访问底层硬件获知的硬件信息与服务器端预存的 硬件信息不一致时, 以第一来源的硬件信息为准确信息, 并按照第一来源的硬件信息对预 存的硬件信息进行修改。
参考图 3, 示出了本发明的一种硬件检测自动报警的方法实施例 3 的步骤流程图, 具体可以包括以下步骤 :
步骤 301、 通过访问用户设备的底层硬件, 作为硬件信息获取的第一来源, 获得当 前用户设备的硬件信息 ;
步骤 302、 从硬件信息获取的第二来源, 获取相同用户设备的硬件信息, 所述第二 来源为与第一来源不同的硬件信息获取源 ;
在本发明的一种优选的实施例中, 所述用户设备具有终端标识, 所述步骤 302 可 以包括 :
根据所述终端标识从服务器端获取其预存的对应用户设备的硬件信息。
区别于上个实施例, 在本实施例中, 所述第二来源的硬件信息为服务器端预存的 硬件信息, 此步骤是将通过访问底层硬件获取的硬件信息与预存的硬件信息进行对比。
步骤 303、 将所述第一来源的硬件信息及对应用户设备的终端标识上传至服务器。
在本实施例中, 所述第一来源的硬件信息与第二来源的硬件信息是否一致的操 作, 以及, 生成报警提示的操作可以由服务器完成。第二来源的硬件信息是由服务器提供,
而第一来源的硬件信息是由系统提供, 所以此处需将第一来源的硬件信息和对应的用户设 备的终端标识上传到服务器。
步骤 304、 对比所述第一来源的硬件信息与第二来源的硬件信息是否一致 ; 若是, 则执行步骤 305 和步骤 306 ; 若否, 则执行步骤 307。
步骤 305、 获取用户设备所安装的操作系统反馈的硬件信息。
步骤 306、 将所述第一来源的硬件信息或第二来源的硬件信息, 与所述操作系统反 馈的硬件信息进行对比, 若不一致, 则生成报警提示。
本实施例中, 在之前的步骤对比了通过访问底层硬件获取的硬件信息与服务器中 预存的硬件信息, 在对比一致的情况下, 还需与通过操作系统获取的硬件信息进行对比, 若 不一致则在服务器端发出报警提示。
步骤 307、 生成报警提示。
步骤 308、 依据所述用户设备第一来源的硬件信息, 更新服务器端预存的对应用户 设备的硬件信息。
参考图 4, 示出了本发明的一种硬件检测自动报警的方法实施例 4 的步骤流程图, 具体可以包括以下步骤 :
步骤 401、 通过访问用户设备的底层硬件, 作为硬件信息获取的第一来源, 获得当 前用户设备的硬件信息 ;
步骤 402、 从硬件信息获取的第二来源, 获取相同用户设备的硬件信息, 所述第二 来源为与第一来源不同的硬件信息获取源 ;
在本发明的一种优选的实施例中, 所述用户设备具有终端标识, 所述步骤 402 可 以包括 :
根据所述终端标识从服务器端获取其预存的对应用户设备的硬件信息。
步骤 403、 将所述第一来源的硬件信息及对应用户设备的终端标识上传至服务器。
步骤 404、 对比所述第一来源的硬件信息与第二来源的硬件信息是否一致 ; 若是, 则执行步骤 405 和步骤 406 ; 若否, 则执行步骤 407。
步骤 405、 通过访问用户设备所安装的 Windows 操作系统的应用程序接口 API 或 Windows 管理规范 WMI, 以及, 硬件驱动程序, 获得当前用户设备的硬件信息 ;
步骤 406、 将所述第一来源的硬件信息或第二来源的硬件信息, 与所获得的硬件信 息进行对比, 若不一致, 则生成报警提示。
区别于上个实施例, 本实施例中, 在之前的步骤对比了通过访问底层硬件获取的 硬件信息与服务器中预存的硬件信息, 在对比一致的情况下, 将第一或第二来源的硬件信 息与通过操作系统的应用程序接口 API 或 Windows 管理规范 WMI 获取的硬件信息进行对 比, 若不一致则在服务器端发出报警提示。
步骤 407、 若否, 则生成报警提示。
在本发明的一种优选的实施例中, 所述对比第一来源的硬件信息与第二来源的硬 件信息是否一致的操作, 以及, 生成报警提示的操作可以由服务器完成。
步骤 408、 依据所述用户设备第一来源的硬件信息, 更新服务器端预存的对应用户 设备的硬件信息。
在具体的实现中, 本发明的一种硬件检测自动报警的方法可以按照预设频率定期执行。 综上所述, 本发明提供了一种硬件检测自动报警的方法, 通过直接访问底层硬件 可以获得最为真实、 准确、 客观的硬件参数信息, 并将该硬件信息与通过操作系统、 操作系 统的应用程序接口 API 或 Windows 管理规范 WMI 获得的硬件信息进行对比, 在信息不一致 的情况下向用户发出报警提示, 由此, 可以帮助用户了解设备的真实配置, 有效防止用户被 不法商贩所蒙骗。
另外, 本发明还对比通过访问底层硬件获取的硬件信息与预存在服务器中的硬件 信息是否一致, 在不一致的情况下对服务器中预存的硬件信息进行修改, 方便了管理员对 其所在局域网的多台用户设备进行有效管理。
本说明书中的各个实施例重点说明的都是与其他实施例的不同之处, 各个实施例 之间相同相似的部分互相参见即可。
需要说明的是, 在本发明实施例中, 所述硬件是指用户设备中的硬件, 所述用户设 备包括计算机、 手机、 PDA 等, 所述硬件包括 CPU、 主板、 显卡、 显示器、 内存、 硬盘、 光驱、 声 卡、 电池、 网卡、 鼠标键盘和 / 或摄像头等。本发明实施例不仅可以应用于单台设备的应用 环境中, 还可以应用于服务器 - 客户端的应用环境, 或者进一步应用于基于云技术的应用 环境中。
对于方法实施例, 为了简单描述, 故将其都表述为一系列的动作组合, 但是本领域 技术人员应该知悉, 本发明并不受所描述的动作顺序的限制, 因为依据本发明, 某些步骤可 以采用其他顺序或者同时进行。 其次, 本领域技术人员也应该知悉, 说明书中所描述的实施 例均属于优选实施例, 所涉及的动作和模块并不一定是本发明所必须的。
参考图 5, 示出了本发明的一种硬件检测自动报警的装置实施例 1 的结构框图, 具 体可以包括以下模块 :
第一来源硬件信息获取模块 501, 用于通过访问用户设备的底层硬件, 作为硬件信 息获取的第一来源, 获得当前用户设备的硬件信息 ;
第二来源硬件信息获取模块 502, 用于从硬件信息获取的第二来源, 获取相同用户 设备的硬件信息, 所述第二来源为与第一来源不同的硬件信息获取源 ;
硬件信息对比模块 503, 用于对比所述第一来源的硬件信息与第二来源的硬件信 息是否一致 ;
报警模块 504, 用于若否, 则生成报警提示。
在本发明的一种优选实施例中, 所述第一来源硬件信息获取模块可以包括 :
底层硬件访问子模块, 用于访问底层硬件, 获得用户设备中的硬件标识信息 ;
硬件参数信息提取子模块, 用于依据所述硬件标识信息, 在预置的硬件信息库中 提取对应的硬件参数信息。
在本发明的一种优选实施例中, 所述硬件标识信息包括厂商 ID 与硬件设备 ID, 所 述底层硬件包括系统总线、 系统管理基本输入输出系统 SMBIOS 和 / 或外设端口, 所述底层 硬件访问子模块具体包括 :
系统总线遍历子模块, 用于遍历系统总线, 所述系统总线包括外设部件互连 PCI 总线、 系统管理 SMBUS 总线、 I2C 总线和 / 或工业标准结构 ISA 总线 ;
和 / 或, 主板信息读取子模块, 用于读取系统管理基本输入输出系统 SMBIOS 的信
息; 和 / 或, 外设端口访问子模块, 用于访问外设端口, 发起与对应外设的 I/O 操作。
在本发明的一种优选的实施例中, 所述硬件信息对比模块, 以及, 报警模块在当前 用户设备上完成。
参考图 6, 示出了本发明的一种硬件检测自动报警的生成装置实施例 2 的结构框 图, 具体可以包括以下模块 :
第一来源硬件信息获取模块 601, 用于通过访问用户设备的底层硬件, 作为硬件信 息获取的第一来源, 获得当前用户设备的硬件信息 ;
第二来源硬件信息获取模块 602, 用于从硬件信息获取的第二来源, 获取相同用户 设备的硬件信息, 所述第二来源为与第一来源不同的硬件信息获取源 ;
在本发明的一种优选的实施例中, 所述第二来源硬件信息获取模块可以包括 : 系 统硬件信息获取子模块, 用于获取用户设备所安装的操作系统反馈的硬件信息。
在本发明的另一种优选的实施例中, 所述第二来源硬件信息获取模块可以包括 : 系统接口硬件信息获取子模块, 用于访问用户设备所安装的 Windows 操作系统的应用程序 接口 API 或 Windows 管理规范 WMI, 以及, 硬件驱动程序, 获得当前用户设备的硬件信息。
信息上传模块 603, 用于将所述第一来源的硬件信息, 以及, 所述第二来源的硬件 信息上传至服务器。
硬件信息对比模块 604, 用于对比所述第一来源的硬件信息与第二来源的硬件信 息是否一致 ; 若是, 则执行模块 605 和模块 606 ; 若否, 则执行模块 607。
预存信息获取模块 605, 用于所述用户设备具有终端标识, 根据所述终端标识从服 务器端获取其预存的对应用户设备的硬件信息 ;
预存信息对比模块 606, 用于将所述第一来源的硬件信息或第二来源的硬件信息, 与所述服务器预存的硬件信息进行对比, 若不一致, 则生成报警提示。
报警模块 607, 用于生成报警提示。
硬件信息更新模块 608, 用于依据所述用户设备第一来源的硬件信息, 更新服务器 端预存的对应用户设备的硬件信息。
在本发明的一种优选的实施例中, 所述硬件信息对比模块, 以及, 报警模块由服务 器完成。
参考图 7, 示出了本发明的一种硬件检测自动报警的装置实施例 3 的结构框图, 具 体可以包括以下模块 :
第一来源硬件信息获取模块 701, 用于通过访问用户设备的底层硬件, 作为硬件信 息获取的第一来源, 获得当前用户设备的硬件信息 ;
第二来源硬件信息获取模块 702, 用于从硬件信息获取的第二来源, 获取相同用户 设备的硬件信息, 所述第二来源为与第一来源不同的硬件信息获取源 ;
在本发明的一种优选的实施例中, 所述用户设备具有终端标识, 所述第二来源硬 件信息获取模块包括 :
终端标识硬件信息获取子模块, 用于根据所述终端标识从服务器端获取其预存的 对应用户设备的硬件信息。
终端标识上传模块 703, 用于将所述第一来源的硬件信息及对应用户设备的终端
标识上传至服务器。
硬件信息对比模块 704, 用于对比所述第一来源的硬件信息与第二来源的硬件信 息是否一致 ; 若是, 则执行模块 705 和模块 706 ; 若否, 则执行模块 707。
操作系统信息获取模块 705, 用于获取用户设备所安装的操作系统反馈的硬件信 息。
操作系统信息对比模块 706, 用于将所述第一来源的硬件信息或第二来源的硬件 信息, 与所述操作系统反馈的硬件信息进行对比, 若不一致, 则生成报警提示。
报警模块 707, 用于生成报警提示。
在本发明的一种优选的实施例中, 所述硬件信息对比模块, 以及, 报警模块由服务 器完成。
硬件信息更新模块 708, 用于依据所述用户设备第一来源的硬件信息, 更新服务器 端预存的对应用户设备的硬件信息。
参考图 8, 示出了本发明的一种硬件检测自动报警的装置实施例 4 的结构框图, 具 体可以包括以下模块 :
第一来源硬件信息获取模块 801, 用于通过访问用户设备的底层硬件, 作为硬件信 息获取的第一来源, 获得当前用户设备的硬件信息 ; 第二来源硬件信息获取模块 802, 用于从硬件信息获取的第二来源, 获取相同用户 设备的硬件信息, 所述第二来源为与第一来源不同的硬件信息获取源 ;
在本发明的一种优选的实施例中, 所述用户设备具有终端标识, 所述第二来源硬 件信息获取模块包括 :
终端标识硬件信息获取子模块, 用于根据所述终端标识从服务器端获取其预存的 对应用户设备的硬件信息。
终端标识上传模块 803, 用于将所述第一来源的硬件信息及对应用户设备的终端 标识上传至服务器。
硬件信息对比模块 804, 用于对比所述第一来源的硬件信息与第二来源的硬件信 息是否一致 ; 若是, 则执行模块 805 和模块 806 ; 若否, 则执行模块 807。
操作系统接口信息获取模块 805, 用于通过访问用户设备所安装的 Windows 操作 系统的应用程序接口 API 或 Windows 管理规范 WMI, 以及, 硬件驱动程序, 获得当前用户设备 的硬件信息 ;
操作系统接口信息对比模块 806, 用于将所述第一来源的硬件信息或第二来源的 硬件信息, 与所获得的硬件信息进行对比, 若不一致, 则生成报警提示。
报警模块 807, 用于生成报警提示。
在本发明的一种优选的实施例中, 所述硬件信息对比模块, 以及, 报警模块由服务 器完成。
硬件信息更新模块 808, 用于依据所述用户设备第一来源的硬件信息, 更新服务器 端预存的对应用户设备的硬件信息。
本发明实施例不仅可以应用于单台设备的应用环境中, 还可以应用于服务器 - 客 户端的应用环境, 或者进一步应用于基于云技术的应用环境中。
由于所述装置实施例基本相应于前述方法实施例, 故本实施例的描述中未详尽之
处, 可以参见前述实施例中的相关说明, 在此就不赘述了。 本发明装置实施例和系统实施例 中所涉及的模块、 子模块和单元可以为软件, 可以为硬件, 也可以为软件和硬件的组合。
本发明可用于众多通用或专用的计算系统环境或配置中。 例如 : 个人计算机、 服务 器计算机、 手持设备或便携式设备、 平板型设备、 多处理器系统、 基于微处理器的系统、 置顶 盒、 可编程的消费电子设备、 网络 PC、 小型计算机、 大型计算机、 包括以上任何系统或设备的 分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述, 例如程序 模块。 一般地, 程序模块包括执行特定任务或实现特定抽象数据类型的例程、 程序、 对象、 组 件、 数据结构等等。也可以在分布式计算环境中实践本发明, 在这些分布式计算环境中, 由 通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中, 程序模块可以 位于包括存储设备在内的本地和远程计算机存储介质中。
在本文中, 术语 “包括” 、 “包含” 或者其任何其他变体意在涵盖非排他性的包含, 从 而使得包括一系列要素的过程、 方法、 物品或者设备不仅包括那些要素, 而且还包括没有明 确列出的其他要素, 或者是还包括为这种过程、 方法、 物品或者设备所固有的要素。在没有 更多限制的情况下, 由语句 “包括一个 ......” 限定的要素, 并不排除在包括所述要素的过 程、 方法、 物品或者设备中还存在另外的相同要素。
最后, 还需要说明的是, 在本文中, 诸如第一和第二等之类的关系术语仅仅用来将 一个实体或者操作与另一个实体或操作区分开来, 而不一定要求或者暗示这些实体或操作 之间存在任何这种实际的关系或者顺序。而且, 术语 “包括” 、 “包含” 或者其任何其他变体 意在涵盖非排他性的包含, 从而使得包括一系列要素的过程、 方法、 物品或者设备不仅包括 那些要素, 而且还包括没有明确列出的其他要素, 或者是还包括为这种过程、 方法、 物品或 者设备所固有的要素。在没有更多限制的情况下, 由语句 “包括一个 ......” 限定的要素, 并不排除在包括所述要素的过程、 方法、 物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种硬件检测自动报警的方法和一种硬件检测自动报警 的装置进行了详细介绍, 本文中应用了具体个例对本发明的原理及实施方式进行了阐述, 以上实施例的说明只是用于帮助理解本发明的方法及其核心思想 ; 同时, 对于本领域的一 般技术人员, 依据本发明的思想, 在具体实施方式及应用范围上均会有改变之处, 综上所 述, 本说明书内容不应理解为对本发明的限制。