CN106201504A - 一种操作系统版本识别方法以及装置 - Google Patents
一种操作系统版本识别方法以及装置 Download PDFInfo
- Publication number
- CN106201504A CN106201504A CN201610529386.4A CN201610529386A CN106201504A CN 106201504 A CN106201504 A CN 106201504A CN 201610529386 A CN201610529386 A CN 201610529386A CN 106201504 A CN106201504 A CN 106201504A
- Authority
- CN
- China
- Prior art keywords
- version
- version number
- information
- system version
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种操作系统版本识别方法以及装置,其中方法包括:根据系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息;当所述第一系统版本号信息不满足预设的准确版本号匹配条件时,获取与操作系统版本对应的内核文件,并根据文件版本信息获取函数,获取与所述内核文件对应的文件版本值信息;将所述文件版本值信息转换为第二系统版本号信息,并确定本地操作系统版本为所述第二系统版本号信息对应的操作系统版本。采用本发明,能够解决因无法准确识别出操作系统版本而导致安全软件无法正常地为计算机提供安全管理服务的技术问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种操作系统版本识别方法以及装置。
背景技术
目前的安全软件在为计算机提供安全管理服务的过程中,通常需要先识别出计算机的操作系统版本,进而根据所识别出的操作系统版本为计算机提供相对应的安全管理服务。而随着计算机中的操作系统的不断升级,使得现存多种操作系统版本,因此,如何准确识别出计算机的操作系统版本则显得十分重要。
目前的操作系统版本识别方法通常为:通过调用GetVersionEx函数获取系统版本信息,进而根据系统版本信息识别计算机的操作系统版本。但是基于GetVersionEx函数只能准确识别出其中一部分操作系统版本,并不能对所有的操作系统版本都进行准确识别,进而可能导致安全软件无法正常地为计算机提供安全管理服务。
发明内容
本发明实施例提供一种操作系统版本识别方法以及装置,能够解决因无法准确识别出操作系统版本而导致安全软件无法正常地为计算机提供安全管理服务的技术问题。
为了解决上述技术问题,本发明实施例提供了一种操作系统版本识别方法,包括:
根据系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息;
当所述第一系统版本号信息不满足预设的准确版本号匹配条件时,获取与操作系统版本对应的内核文件,并根据文件版本信息获取函数,获取与所述内核文件对应的文件版本值信息;
将所述文件版本值信息转换为第二系统版本号信息,并确定本地操作系统版本为所述第二系统版本号信息对应的操作系统版本。
相应地,本发明实施例还提供了一种操作系统版本识别装置,包括:
第一获取模块,用于根据系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息;
第二获取模块,用于当所述第一系统版本号信息不满足预设的准确版本号匹配条件时,获取与操作系统版本对应的内核文件,并根据文件版本信息获取函数,获取与所述内核文件对应的文件版本值信息;
版本确定模块,用于将所述文件版本值信息转换为第二系统版本号信息,并确定本地操作系统版本为所述第二系统版本号信息对应的操作系统版本。
本发明实施例通过系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息,并当第一系统版本号信息不满足预设的准确版本号匹配条件时,进一步获取与操作系统版本对应的内核文件,并根据内核文件的文件版本值信息识别出本地操作系统版本。由于该内核文件与各种操作系统版本都具有对应关系,所以通过内核文件的文件版本值信息可以准确识别出所有的操作系统版本,从而能够解决因无法准确识别出操作系统版本而导致安全软件无法正常地为计算机提供安全管理服务的技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种操作系统版本识别方法的流程示意图;
图2是本发明实施例提供的另一种操作系统版本识别方法的流程示意图;
图3是本发明实施例提供的一种操作系统版本识别装置的结构示意图;
图4是本发明实施例提供的一种第二获取模块的结构示意图;
图5是本发明实施例提供的一种版本确定模块的结构示意图;
图6是本发明实施例提供的另一种操作系统版本识别装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,是本发明实施例提供的一种操作系统版本识别方法的流程示意图,所述方法可以包括:
S101,根据系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息;
具体的,计算机设备可以根据系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息。所述计算机设备可以为安装有微软操作系统的设备,所述系统版本信息获取函数可以为GetVersionEx函数,所述第一系统版本号信息包括第一主版本号和第一次版本号。例如,所述计算机设备调用GetVersionEx函数,可以得到返回的OSVERSIONINFO系统版本结构,并从OSVERSIONINFO系统版本结构中提取出主版本号(即所述第一主版本号)和次版本号(即所述第一次版本号)。所述计算机设备可以进一步判断所述第一主版本号是否大于或等于预设的第一数值阈值,且所述第一次版本号是否大于或等于预设的第二数值阈值;若判断出所述第一主版本号大于或等于预设的第一数值阈值(所述第一数值阈值可以为6),且所述第一次版本号大于或等于预设的第二数值阈值(所述第二数值阈值可以为2),则说明所述计算机设备的本地操作系统版本是属于GetVersionEx函数无法准确识别的操作系统版本(如Window 8系统、Window 10系统),则可以确定所述第一系统版本号信息不满足预设的准确版本号匹配条件,即需要对所述本地操作系统版本进行进一步的准确识别(识别过程参见如下S102-S103);若判断出所述第一主版本号小于预设的第一数值阈值,或所述第一次版本号小于预设的第二数值阈值,则说明所述计算机设备的本地操作系统版本是属于GetVersionEx函数可以准确识别的操作系统版本(如Windowxp系统、Window vista系统、Window 7系统),此时,可以直接根据所述第一主版本号和所述第一次版本号识别出所述本地操作系统版本,即此时基于GetVersionEx函数是可以准确识别出所述本地操作系统版本。
S102,当所述第一系统版本号信息不满足预设的准确版本号匹配条件时,获取与操作系统版本对应的内核文件,并根据文件版本信息获取函数,获取与所述内核文件对应的文件版本值信息;
具体的,当所述第一系统版本号信息不满足预设的准确版本号匹配条件时,说明此时基于GetVersionEx函数是无法准确识别出所述本地操作系统版本,因此,需要进一步获取与操作系统版本对应的内核文件,所述内核文件可以为ntoskrnl.exe文件(所述ntoskrnl.exe文件可以存在于微软所有的操作系统版本中,且不同的操作系统版本所对应的ntoskrnl.exe文件的文件版本值信息也不同)。其中,ntoskrnl.exe文件是在C:\windows\system32\ntoskrnl.exe下的,因此,以文件路径为参数并调用微软函数GetFileVersionInfo(即所述文件版本信息获取函数)以获取所述ntoskrnl.exe文件对应的文件版本信息结构;所述文件版本信息结构是一个内存空间指针,需再调用微软函数VerQueryValue对所述文件版本信息结构进行解析,以得到与所述文件版本信息结构对应的返回值:VS_FIXEDFILEINFO数据,所述VS_FIXEDFILEINFO数据中保存有与所述内核文件对应的文件版本值信息。所述文件版本值信息包括高位版本值和低位版本值;所述高位版本值为所述文件版本值信息中的高16位数值,所述低位版本值为所述文件版本值信息中的低16位数值。
S103,将所述文件版本值信息转换为第二系统版本号信息,并确定本地操作系统版本为所述第二系统版本号信息对应的操作系统版本;
具体的,所述计算机设备可以通过HIWORD转换函数(微软操作系统所提供的函数)将所述文件版本值信息中的所述高位版本值转换为第二主版本号,并通过LOWORD转换函数(微软操作系统所提供的函数)将所述文件版本值信息中的所述低位版本值转换为第二次版本号,即所述第二主版本号=HIWORD(高位版本值),所述第二次版本号=LOWORD(低位版本值)。所述计算机设备进一步将所述第二主版本号和所述第二次版本号作为第二系统版本号信息,并在预设的第二系统版本号查询表中查找所述第二系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第二系统版本号信息对应的操作系统版本。所述第二系统版本号查询表可以参见如下表1:
表1
从表1即可查询出所述第二系统版本号信息(第二主版本号与第二次版本号)对应的操作系统版本。例如,若将所述高位版本值转换得到的所述第二主版本号为10,且将所述低位版本值转换得到的所述第二次版本号为0,则可以识别出所述本地操作系统版本为Windows 10系统。
本发明实施例通过系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息,并当第一系统版本号信息不满足预设的准确版本号匹配条件时,进一步获取与操作系统版本对应的内核文件,并根据内核文件的文件版本值信息识别出本地操作系统版本。由于该内核文件与各种操作系统版本都具有对应关系,所以通过内核文件的文件版本值信息可以准确识别出所有的操作系统版本,从而能够解决因无法准确识别出操作系统版本而导致安全软件无法正常地为计算机提供安全管理服务的技术问题。
请参见图2,是本发明实施例提供的另一种操作系统版本识别方法的流程示意图,所述方法可以包括:
S201,根据系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息;
具体的,计算机设备可以根据系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息。所述计算机设备可以为安装有微软操作系统的设备,所述系统版本信息获取函数可以为GetVersionEx函数,所述第一系统版本号信息包括第一主版本号和第一次版本号。例如,所述计算机设备调用GetVersionEx函数,可以得到返回的OSVERSIONINFO系统版本结构,并从OSVERSIONINFO系统版本结构中提取出主版本号(即所述第一主版本号)和次版本号(即所述第一次版本号)。
S202,判断所述第一主版本号是否大于或等于预设的第一数值阈值,且所述第一次版本号是否大于或等于预设的第二数值阈值;
其中,所述第一数值阈值为6,所述第二数值阈值为2。
S203,确定所述第一系统版本号信息满足所述准确版本号匹配条件;
具体的,若S202判断出所述第一主版本号小于预设的第一数值阈值,或所述第一次版本号小于预设的第二数值阈值,则说明所述计算机设备的本地操作系统版本是属于GetVersionEx函数可以准确识别的操作系统版本(如Window xp系统、Window vista系统、Window 7系统),即可以确定所述第一系统版本号信息满足所述准确版本号匹配条件。
S204,在预设的第一系统版本号查询表中查找所述第一系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第一系统版本号信息对应的操作系统版本;
具体的,当确定所述第一系统版本号信息满足所述准确版本号匹配条件时,所述计算机设备可以进一步在预设的第一系统版本号查询表中查找所述第一系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第一系统版本号信息对应的操作系统版本。所述第一系统版本号查询表可以参见如下表2:
第一主版本号 | 第一次版本号 | 操作系统版本 |
5 | 2 | Windows xp系统 |
6 | 0 | Windows vista系统 |
6 | 1 | Windows 7系统 |
表2
从表2即可查询出所述第一系统版本号信息(第一主版本号与第一次版本号)对应的操作系统版本。例如,若基于GetVersionEx函数获取到的所述第一主版本号为6,且获取到的所述第一次版本号为1,则可以识别出所述本地操作系统版本为Windows 7系统。
S205,确定所述第一系统版本号信息不满足所述准确版本号匹配条件;
具体的,若S202判断出所述第一主版本号大于或等于预设的第一数值阈值(所述第一数值阈值可以为6),且所述第一次版本号大于或等于预设的第二数值阈值(所述第二数值阈值可以为2),则说明所述计算机设备的本地操作系统版本是属于GetVersionEx函数无法准确识别的操作系统版本(如Window 8系统、Window 10系统),则可以确定所述第一系统版本号信息不满足预设的准确版本号匹配条件,即需要对所述本地操作系统版本进行进一步的准确识别。
S206,获取与操作系统版本对应的内核文件,并根据文件版本信息获取函数,获取与所述内核文件对应的文件版本值信息;
具体的,当确定所述第一系统版本号信息不满足预设的准确版本号匹配条件时,所述计算机设备可以进一步获取与操作系统版本对应的内核文件,所述内核文件可以为ntoskrnl.exe文件(所述ntoskrnl.exe文件可以存在于微软所有的操作系统版本中,且不同的操作系统版本所对应的ntoskrnl.exe文件的文件版本值信息也不同)。其中,ntoskrnl.exe文件是在C:\windows\system32\ntoskrnl.exe下的,因此,可以获取所述内核文件的存储路径,并调用GetFileVersionInfo函数(即所述文件版本信息获取函数),并将所述内核文件的存储路径作为GetFileVersionInfo函数的查询参数,以获取所述ntoskrnl.exe文件对应的文件版本信息结构;所述文件版本信息结构是一个内存空间指针,需再调用微软函数VerQueryValue(即版本值获取函数)对所述文件版本信息结构进行解析,以得到与所述文件版本信息结构对应的返回值:VS_FIXEDFILEINFO数据,所述VS_FIXEDFILEINFO数据中保存有与所述内核文件对应的文件版本值信息。所述文件版本值信息包括高位版本值和低位版本值;所述高位版本值为所述文件版本值信息中的高16位数值,所述低位版本值为所述文件版本值信息中的低16位数值。
S207,根据版本转换函数,将所述高位版本值转换为第二主版本号,并将所述低位版本值转换为第二次版本号;
具体的,所述计算机设备可以通过HIWORD转换函数(微软操作系统所提供的一种版本转换函数)将所述文件版本值信息中的所述高位版本值转换为第二主版本号,并通过LOWORD转换函数(微软操作系统所提供的另一种版本转换函数)将所述文件版本值信息中的所述低位版本值转换为第二次版本号,即所述第二主版本号=HIWORD(高位版本值),所述第二次版本号=LOWORD(低位版本值)。
S208,将所述第二主版本号和所述第二次版本号作为第二系统版本号信息,在预设的第二系统版本号查询表中查找所述第二系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第二系统版本号信息对应的操作系统版本;
具体的,所述计算机设备可以进一步将所述第二主版本号和所述第二次版本号作为第二系统版本号信息,并在预设的第二系统版本号查询表中查找所述第二系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第二系统版本号信息对应的操作系统版本。所述第二系统版本号查询表可以参见上述图1对应实施例中的表1,以上述表1为例,若将所述高位版本值转换得到的所述第二主版本号为10,且将所述低位版本值转换得到的所述第二次版本号为0,则可以识别出所述本地操作系统版本为Windows 10系统。
本发明实施例通过系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息,并当第一系统版本号信息不满足预设的准确版本号匹配条件时,进一步获取与操作系统版本对应的内核文件,并根据内核文件的文件版本值信息识别出本地操作系统版本。由于该内核文件与各种操作系统版本都具有对应关系,所以通过内核文件的文件版本值信息可以准确识别出所有的操作系统版本,从而能够解决因无法准确识别出操作系统版本而导致安全软件无法正常地为计算机提供安全管理服务的技术问题;而且由于使用GetVersionEx函数识别操作系统版本的方式要比使用文件版本值信息识别操作系统版本的方式所消耗的系统资源更小,所以当第一系统版本号信息满足预设的准确版本号匹配条件时,可以依然使用GetVersionEx函数即可准确识别出本地操作系统版本,以避免始终使用文件版本值信息来识别操作系统版本,从而可以在保证准确识别出所有的操作系统版本的同时,降低系统资源开销。
请参见图3,是本发明实施例提供的一种操作系统版本识别装置的结构示意图。所述操作系统版本识别装置1可以应用于计算机设备,所述计算机设备可以为安装有微软操作系统的设备,所述操作系统版本识别装置1可以包括:第一获取模块10、判断模块40、条件确定模块50、第二获取模块20、版本确定模块30;
所述第一获取模块10,用于根据系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息;
具体的,所述第一获取模块10可以根据系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息。所述系统版本信息获取函数可以为GetVersionEx函数,所述第一系统版本号信息包括第一主版本号和第一次版本号。例如,所述第一获取模块10通过调用GetVersionEx函数,可以得到返回的OSVERSIONINFO系统版本结构,并从OSVERSIONINFO系统版本结构中提取出主版本号(即所述第一主版本号)和次版本号(即所述第一次版本号)。
所述判断模块40,用于判断所述第一主版本号是否大于或等于预设的第一数值阈值,且所述第一次版本号是否大于或等于预设的第二数值阈值;
其中,所述第一数值阈值为6,所述第二数值阈值为2。
所述条件确定模块50,用于若所述判断模块40判断出所述第一主版本号小于所述第一数值阈值,或所述第一次版本号小于所述第二数值阈值,则确定所述第一系统版本号信息满足所述准确版本号匹配条件。
具体的,若所述判断模块40判断出所述第一主版本号小于预设的第一数值阈值,和/或所述第一次版本号小于预设的第二数值阈值,则说明所述计算机设备的本地操作系统版本是属于GetVersionEx函数可以准确识别的操作系统版本(如Window xp系统、Windowvista系统、Window 7系统),即所述条件确定模块50可以确定所述第一系统版本号信息满足所述准确版本号匹配条件。
则所述版本确定模块30,用于当所述第一系统版本号信息满足所述准确版本号匹配条件时,在预设的第一系统版本号查询表中查找所述第一系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第一系统版本号信息对应的操作系统版本;
具体的,当确定所述第一系统版本号信息满足所述准确版本号匹配条件时,所述版本确定模块30可以在预设的第一系统版本号查询表中查找所述第一系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第一系统版本号信息对应的操作系统版本。所述第一系统版本号查询表可以参见上述图2对应实施例中的表2,以上述表2为例,若基于GetVersionEx函数获取到的所述第一主版本号为6,且获取到的所述第一次版本号为1,则所述版本确定模块30可以识别出所述本地操作系统版本为Windows 7系统。
所述条件确定模块50,还用于若所述判断模块40判断出所述第一主版本号大于或等于所述第一数值阈值,且所述第一次版本号大于或等于所述第二数值阈值,则确定所述第一系统版本号信息不满足所述准确版本号匹配条件;
具体的,若所述判断模块40判断出所述第一主版本号大于或等于预设的第一数值阈值(所述第一数值阈值可以为6),且所述第一次版本号大于或等于预设的第二数值阈值(所述第二数值阈值可以为2),则说明所述计算机设备的本地操作系统版本是属于GetVersionEx函数无法准确识别的操作系统版本(如Window 8系统、Window 10系统),则所述条件确定模块50可以确定所述第一系统版本号信息不满足预设的准确版本号匹配条件,即需要对所述本地操作系统版本进行进一步的准确识别。
所述第二获取模块20,用于当所述第一系统版本号信息不满足预设的准确版本号匹配条件时,获取与操作系统版本对应的内核文件,并根据文件版本信息获取函数,获取与所述内核文件对应的文件版本值信息;
具体的,当确定所述第一系统版本号信息不满足预设的准确版本号匹配条件时,所述第二获取模块20可以进一步获取与操作系统版本对应的内核文件,所述内核文件可以为ntoskrnl.exe文件(所述ntoskrnl.exe文件可以存在于微软所有的操作系统版本中,且不同的操作系统版本所对应的ntoskrnl.exe文件的文件版本值信息也不同)。其中,ntoskrnl.exe文件是在C:\windows\system32\ntoskrnl.exe下的,因此,所述第二获取模块20可以获取所述内核文件的存储路径,并调用GetFileVersionInfo函数(即所述文件版本信息获取函数),并将所述内核文件的存储路径作为GetFileVersionInfo函数的查询参数,以获取所述ntoskrnl.exe文件对应的文件版本信息结构;所述文件版本信息结构是一个内存空间指针,所述第二获取模块20需再调用微软函数VerQueryValue(即版本值获取函数)对所述文件版本信息结构进行解析,以得到与所述文件版本信息结构对应的返回值:VS_FIXEDFILEINFO数据,所述VS_FIXEDFILEINFO数据中保存有与所述内核文件对应的文件版本值信息。所述文件版本值信息包括高位版本值和低位版本值;所述高位版本值为所述文件版本值信息中的高16位数值,所述低位版本值为所述文件版本值信息中的低16位数值。
所述版本确定模块30,还用于将所述文件版本值信息转换为第二系统版本号信息,并确定本地操作系统版本为所述第二系统版本号信息对应的操作系统版本;
具体的,所述版本确定模块30可以通过HIWORD转换函数(微软操作系统所提供的一种版本转换函数)将所述文件版本值信息中的所述高位版本值转换为第二主版本号,并通过LOWORD转换函数(微软操作系统所提供的另一种版本转换函数)将所述文件版本值信息中的所述低位版本值转换为第二次版本号,即所述第二主版本号=HIWORD(高位版本值),所述第二次版本号=LOWORD(低位版本值)。所述版本确定模块30可以进一步将所述第二主版本号和所述第二次版本号作为第二系统版本号信息,并在预设的第二系统版本号查询表中查找所述第二系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第二系统版本号信息对应的操作系统版本。所述第二系统版本号查询表可以参见上述图1对应实施例中的表1,以上述表1为例,若将所述高位版本值转换得到的所述第二主版本号为10,且将所述低位版本值转换得到的所述第二次版本号为0,则所述版本确定模块30可以识别出所述本地操作系统版本为Windows 10系统。
进一步的,请一并参见图4,是本发明实施例提供的一种第二获取模块20的结构示意图,所述第二获取模块20可以包括:内核文件获取单元201、文件版本获取单元202、版本值获取单元203;
所述内核文件获取单元201,用于获取与操作系统版本对应的内核文件,并获取所述内核文件的存储路径;
所述文件版本获取单元202,用于将所述内核文件的存储路径作为文件版本信息获取函数的查询参数,以获取与所述内核文件对应的文件版本信息结构;
所述版本值获取单元203,用于根据版本值获取函数,获取所述文件版本信息结构中的文件版本值信息。
其中,所述内核文件获取单元201、所述文件版本获取单元202以及所述版本值获取单元203的具体实现方式可以参见上述图3对应实施例中对所述第二获取模块20的具体描述,这里不再进行赘述。
进一步的,请一并参见图5,是本发明实施例提供的一种版本确定模块30的结构示意图,所述版本确定模块30可以包括:转换单元301、版本查找确定单元302;
所述转换单元301,用于根据版本转换函数,将所述高位版本值转换为第二主版本号,并将所述低位版本值转换为第二次版本号;
所述版本查找确定单元302,用于将所述第二主版本号和所述第二次版本号作为第二系统版本号信息,并在预设的第二系统版本号查询表中查找所述第二系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第二系统版本号信息对应的操作系统版本;
其中,所述转换单元301和所述版本查找确定单元302的具体实现方式可以参见上述图3对应实施例中的所述版本确定模块30在将所述文件版本值信息转换为第二系统版本号信息并确定本地操作系统版本为所述第二系统版本号信息对应的操作系统版本时的具体实现过程,这里不再进行赘述。
本发明实施例通过系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息,并当第一系统版本号信息不满足预设的准确版本号匹配条件时,进一步获取与操作系统版本对应的内核文件,并根据内核文件的文件版本值信息识别出本地操作系统版本。由于该内核文件与各种操作系统版本都具有对应关系,所以通过内核文件的文件版本值信息可以准确识别出所有的操作系统版本,从而能够解决因无法准确识别出操作系统版本而导致安全软件无法正常地为计算机提供安全管理服务的技术问题;而且由于使用GetVersionEx函数识别操作系统版本的方式要比使用文件版本值信息识别操作系统版本的方式所消耗的系统资源更小,所以当第一系统版本号信息满足预设的准确版本号匹配条件时,可以依然使用GetVersionEx函数即可准确识别出本地操作系统版本,以避免始终使用文件版本值信息来识别操作系统版本,从而可以在保证准确识别出所有的操作系统版本的同时,降低系统资源开销。
请参见图6,是本发明实施例提供的另一种操作系统版本识别装置的结构示意图。所述操作系统版本识别装置1000可以应用于计算机设备,所述计算机设备可以为安装有微软操作系统的设备,所述操作系统版本识别装置1000可以包括处理器1001、通信接口1002和存储器1003(操作系统版本识别装置1000中的处理器1001的数量可以为一个或多个,图6中以一个处理器1001为例)。本发明的一些实施例中,处理器1001、通信接口1002和存储器1003可通过通信总线或其他方式连接,其中,图6以通过通信总线连接为例。
其中,所述通信接口1002,用于与服务器进行通信;
所述存储器1003用于存储程序;
所述处理器1001用于执行所述程序,以实现
根据系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息;
当所述第一系统版本号信息不满足预设的准确版本号匹配条件时,获取与操作系统版本对应的内核文件,并根据文件版本信息获取函数,获取与所述内核文件对应的文件版本值信息;
将所述文件版本值信息转换为第二系统版本号信息,并确定本地操作系统版本为所述第二系统版本号信息对应的操作系统版本。
在一个实施例中,所述第一系统版本号信息包括第一主版本号和第一次版本号;
所述处理器1001在执行获取与操作系统版本对应的内核文件,并根据文件版本信息获取函数,获取与所述内核文件对应的文件版本值信息之前,还执行以下步骤:
判断所述第一主版本号是否大于或等于预设的第一数值阈值,且所述第一次版本号是否大于或等于预设的第二数值阈值;
若所述第一主版本号大于或等于所述第一数值阈值,且所述第一次版本号大于或等于所述第二数值阈值,则确定所述第一系统版本号信息不满足所述准确版本号匹配条件;
若所述第一主版本号小于所述第一数值阈值,或所述第一次版本号小于所述第二数值阈值,则确定所述第一系统版本号信息满足所述准确版本号匹配条件。
在一个实施例中,所述处理器1001还执行以下步骤:
当所述第一系统版本号信息满足所述准确版本号匹配条件时,在预设的第一系统版本号查询表中查找所述第一系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第一系统版本号信息对应的操作系统版本。
在一个实施例中,所述处理器1001在执行获取与操作系统版本对应的内核文件,并根据文件版本信息获取函数,获取与所述内核文件对应的文件版本值信息时,具体执行以下步骤:
获取与操作系统版本对应的内核文件,并获取所述内核文件的存储路径;
将所述内核文件的存储路径作为文件版本信息获取函数的查询参数,以获取与所述内核文件对应的文件版本信息结构;
根据版本值获取函数,获取所述文件版本信息结构中的文件版本值信息。
在一个实施例中,所述文件版本值信息包括高位版本值和低位版本值;
所述处理器1001在执行将所述文件版本值信息转换为第二系统版本号信息,并确定本地操作系统版本为所述第二系统版本号信息对应的操作系统版本时,具体执行以下步骤:
根据版本转换函数,将所述高位版本值转换为第二主版本号,并将所述低位版本值转换为第二次版本号;
将所述第二主版本号和所述第二次版本号作为第二系统版本号信息;
在预设的第二系统版本号查询表中查找所述第二系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第二系统版本号信息对应的操作系统版本。
本发明实施例通过系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息,并当第一系统版本号信息不满足预设的准确版本号匹配条件时,进一步获取与操作系统版本对应的内核文件,并根据内核文件的文件版本值信息识别出本地操作系统版本。由于该内核文件与各种操作系统版本都具有对应关系,所以通过内核文件的文件版本值信息可以准确识别出所有的操作系统版本,从而能够解决因无法准确识别出操作系统版本而导致安全软件无法正常地为计算机提供安全管理服务的技术问题;而且由于使用GetVersionEx函数识别操作系统版本的方式要比使用文件版本值信息识别操作系统版本的方式所消耗的系统资源更小,所以当第一系统版本号信息满足预设的准确版本号匹配条件时,可以依然使用GetVersionEx函数即可准确识别出本地操作系统版本,以避免始终使用文件版本值信息来识别操作系统版本,从而可以在保证准确识别出所有的操作系统版本的同时,降低系统资源开销。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种操作系统版本识别方法,其特征在于,包括:
根据系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息;
当所述第一系统版本号信息不满足预设的准确版本号匹配条件时,获取与操作系统版本对应的内核文件,并根据文件版本信息获取函数,获取与所述内核文件对应的文件版本值信息;
将所述文件版本值信息转换为第二系统版本号信息,并确定本地操作系统版本为所述第二系统版本号信息对应的操作系统版本。
2.如权利要求1所述的方法,其特征在于,所述第一系统版本号信息包括第一主版本号和第一次版本号;
在所述获取与操作系统版本对应的内核文件,并根据文件版本信息获取函数,获取与所述内核文件对应的文件版本值信息的步骤之前,还包括:
判断所述第一主版本号是否大于或等于预设的第一数值阈值,且所述第一次版本号是否大于或等于预设的第二数值阈值;
若所述第一主版本号大于或等于所述第一数值阈值,且所述第一次版本号大于或等于所述第二数值阈值,则确定所述第一系统版本号信息不满足所述准确版本号匹配条件;
若所述第一主版本号小于所述第一数值阈值,或所述第一次版本号小于所述第二数值阈值,则确定所述第一系统版本号信息满足所述准确版本号匹配条件。
3.如权利要求1所述的方法,其特征在于,还包括:
当所述第一系统版本号信息满足所述准确版本号匹配条件时,在预设的第一系统版本号查询表中查找所述第一系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第一系统版本号信息对应的操作系统版本。
4.如权利要求1所述的方法,其特征在于,所述获取与操作系统版本对应的内核文件,并根据文件版本信息获取函数,获取与所述内核文件对应的文件版本值信息,包括:
获取与操作系统版本对应的内核文件,并获取所述内核文件的存储路径;
将所述内核文件的存储路径作为文件版本信息获取函数的查询参数,以获取与所述内核文件对应的文件版本信息结构;
根据版本值获取函数,获取所述文件版本信息结构中的文件版本值信息。
5.如权利要求1所述的方法,其特征在于,所述文件版本值信息包括高位版本值和低位版本值;
所述将所述文件版本值信息转换为第二系统版本号信息,并确定本地操作系统版本为所述第二系统版本号信息对应的操作系统版本,包括:
根据版本转换函数,将所述高位版本值转换为第二主版本号,并将所述低位版本值转换为第二次版本号;
将所述第二主版本号和所述第二次版本号作为第二系统版本号信息;
在预设的第二系统版本号查询表中查找所述第二系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第二系统版本号信息对应的操作系统版本。
6.一种操作系统版本识别装置,其特征在于,包括:
第一获取模块,用于根据系统版本信息获取函数,获取与操作系统版本对应的第一系统版本号信息;
第二获取模块,用于当所述第一系统版本号信息不满足预设的准确版本号匹配条件时,获取与操作系统版本对应的内核文件,并根据文件版本信息获取函数,获取与所述内核文件对应的文件版本值信息;
版本确定模块,用于将所述文件版本值信息转换为第二系统版本号信息,并确定本地操作系统版本为所述第二系统版本号信息对应的操作系统版本。
7.如权利要求6所述的装置,其特征在于,所述第一系统版本号信息包括第一主版本号和第一次版本号;
所述装置还包括:
判断模块,用于判断所述第一主版本号是否大于或等于预设的第一数值阈值,且所述第一次版本号是否大于或等于预设的第二数值阈值;
条件确定模块,用于若所述判断模块判断出所述第一主版本号大于或等于所述第一数值阈值,且所述第一次版本号大于或等于所述第二数值阈值,则确定所述第一系统版本号信息不满足所述准确版本号匹配条件;
所述条件确定模块,还用于若所述判断模块判断出所述第一主版本号小于所述第一数值阈值,或所述第一次版本号小于所述第二数值阈值,则确定所述第一系统版本号信息满足所述准确版本号匹配条件。
8.如权利要求6所述的装置,其特征在于,
所述版本确定模块,还用于当所述第一系统版本号信息满足所述准确版本号匹配条件时,在预设的第一系统版本号查询表中查找所述第一系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第一系统版本号信息对应的操作系统版本。
9.如权利要求6所述的装置,其特征在于,所述第二获取模块包括:
内核文件获取单元,用于获取与操作系统版本对应的内核文件,并获取所述内核文件的存储路径;
文件版本获取单元,用于将所述内核文件的存储路径作为文件版本信息获取函数的查询参数,以获取与所述内核文件对应的文件版本信息结构;
版本值获取单元,用于根据版本值获取函数,获取所述文件版本信息结构中的文件版本值信息。
10.如权利要求6所述的装置,其特征在于,所述文件版本值信息包括高位版本值和低位版本值;
所述版本确定模块包括:
转换单元,用于根据版本转换函数,将所述高位版本值转换为第二主版本号,并将所述低位版本值转换为第二次版本号;
版本查找确定单元,用于将所述第二主版本号和所述第二次版本号作为第二系统版本号信息,并在预设的第二系统版本号查询表中查找所述第二系统版本号信息对应的操作系统版本,并确定所述本地操作系统版本为所述第二系统版本号信息对应的操作系统版本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610529386.4A CN106201504A (zh) | 2016-07-06 | 2016-07-06 | 一种操作系统版本识别方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610529386.4A CN106201504A (zh) | 2016-07-06 | 2016-07-06 | 一种操作系统版本识别方法以及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106201504A true CN106201504A (zh) | 2016-12-07 |
Family
ID=57465497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610529386.4A Pending CN106201504A (zh) | 2016-07-06 | 2016-07-06 | 一种操作系统版本识别方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106201504A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628633A (zh) * | 2018-04-03 | 2018-10-09 | 武汉斗鱼网络科技有限公司 | 版本号获取方法、装置及电子设备 |
CN108805133A (zh) * | 2018-06-12 | 2018-11-13 | 郑州云海信息技术有限公司 | 一种获取Linux内核有效版本号的方法 |
CN109062635A (zh) * | 2018-07-11 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种识别操作系统版本的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677764A (zh) * | 2012-08-31 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种浏览器访问icu库函数的方法、系统及浏览器 |
CN106126248A (zh) * | 2016-06-29 | 2016-11-16 | 北京金山安全软件有限公司 | 一种获取操作系统版本信息的方法、装置及电子设备 |
-
2016
- 2016-07-06 CN CN201610529386.4A patent/CN106201504A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677764A (zh) * | 2012-08-31 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种浏览器访问icu库函数的方法、系统及浏览器 |
CN106126248A (zh) * | 2016-06-29 | 2016-11-16 | 北京金山安全软件有限公司 | 一种获取操作系统版本信息的方法、装置及电子设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628633A (zh) * | 2018-04-03 | 2018-10-09 | 武汉斗鱼网络科技有限公司 | 版本号获取方法、装置及电子设备 |
CN108805133A (zh) * | 2018-06-12 | 2018-11-13 | 郑州云海信息技术有限公司 | 一种获取Linux内核有效版本号的方法 |
CN109062635A (zh) * | 2018-07-11 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种识别操作系统版本的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113157854B (zh) | Api的敏感数据泄露检测方法及系统 | |
CN106201504A (zh) | 一种操作系统版本识别方法以及装置 | |
CN110837956A (zh) | 地下电缆巡检任务分配方法和装置 | |
CN109617647A (zh) | 报文转换方法、装置、计算机设备及计算机可读存储介质 | |
CN108460271B (zh) | 终端识别方法及装置 | |
CN112800197A (zh) | 一种目标故障信息的确定方法和装置 | |
CN111831920A (zh) | 用户需求分析方法、装置、计算机设备及存储介质 | |
CN110688305B (zh) | 测试环境同步方法、装置、介质、电子设备 | |
CN104424352A (zh) | 向用户终端提供代理服务的系统和方法 | |
CN111625342A (zh) | 一种数据溯源方法、装置及服务器 | |
CN105426544B (zh) | 监控数据库状态的方法及装置 | |
CN110826318A (zh) | 物流信息识别的方法、设备、计算机设备和存储介质 | |
CN112068812B (zh) | 一种微服务生成方法、装置、计算机设备和存储介质 | |
CN106126011A (zh) | 一种应用程序的资源占用信息显示方法及移动终端 | |
CN111026613B (zh) | 日志处理方法及装置 | |
WO2020181819A1 (zh) | 智能调度方法、装置、计算机设备及存储介质 | |
US7778660B2 (en) | Mobile communications terminal, information transmitting system and information receiving method | |
CN113282850B (zh) | 资源标签管理方法、装置、电子设备、系统及存储介质 | |
CN108763053A (zh) | 埋点名称的生成方法及终端设备 | |
CN111125567B (zh) | 设备标记方法、装置、电子设备及存储介质 | |
CN110209418B (zh) | 一种程序更新方法、装置、设备及计算机可读存储介质 | |
CN110677353A (zh) | 数据访问方法及系统 | |
CN112948173A (zh) | 一种数据恢复方法、装置、设备及介质 | |
CN111343101A (zh) | 服务器限流方法、装置、电子设备及可读存储介质 | |
CN112825087A (zh) | 用户信息查找方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20181203 Address after: Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Applicant after: Zhuhai Leopard Technology Co.,Ltd. Address before: 100085 East District, Second Floor, 33 Xiaoying West Road, Haidian District, Beijing Applicant before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161207 |
|
RJ01 | Rejection of invention patent application after publication |