一种实现SNMP协议get和set接口的方法及装置与流程

文档序号:11589908阅读:915来源:国知局
一种实现SNMP协议get和set接口的方法及装置与流程

本发明涉及通信技术领域,特别是涉及一种实现snmp协议get和set接口的方法及装置。



背景技术:

简单网络管理协议(snmp)是基于tcp/ip协议族的网络管理标准,是一种在ip网络中管理网络节点(如服务器、工作站、路由器以及交换机等)的标准协议。

命令行是受控设备内提供的统一对外,用于查询和配置操作的接口,其集成了受控设备绝大部分的操作接口。

现有受控设备内只实现了snmp协议的trap接口,即该受控设备对外提高trap接口,实现向主控端上报资料功能,但其没有实现snmp协议的get接口和set接口。



技术实现要素:

本发明的目的是提供一种实现snmp协议get和set接口的方法及装置,以解决现有技术受控设备没有实现snmp协议的get&set接口的问题。

为解决上述技术问题,本发明提供一种实现snmp协议get和set接口的方法,该方法包括:

接收网络管理系统的snmp消息;

确定所述snmp消息的消息类型,所述消息类型为get消息或set消息的一种;

根据所述消息类型,生成命令行和命令行参数;

根据所述命令行和所述命令行参数,调用系统函数接口,执行所述命令行,得出执行结果;

基于snmp协议接口,返回所述执行结果。

可选地,所述根据所述命令行和所述命令行参数,调用系统函数接口,执行所述命令行,得出执行结果包括:

调用所述系统函数接口,根据所述命令行参数和所述命令行,调用预存储的命令行执行文件;

执行所述命令行执行文件,得出所述执行结果;

其中,所述命令行执行文件为svcinfo文件或svctask文件。

可选地,所述系统函数接口为execvp接口或popen接口。

可选地,所述确定所述snmp消息的消息类型包括:

解析所述snmp消息,得出消息类型信息;

根据所述消息类型信息,确定所述消息类型。

可选地,在所述执行所述命令行执行文件,得出所述执行结果之后还包括:

解析所述执行结果,筛选出预设信息,将所述预设信息作为返回给所述网络管理系统的消息结果。

此外,本发明还提供了一种实现snmp协议get和set接口的装置,该装置包括:

消息接收模块,用于接收网络管理系统的snmp消息;

消息类型确定模块,用于确定所述snmp消息的消息类型,所述消息类型为get消息或set消息的一种;

生成模块,用于根据所述消息类型,生成命令行和命令行参数;

执行模块,用于根据所述命令行和所述命令行参数,调用系统函数接口,执行所述命令行,得出执行结果;

返回模块,用于基于snmp协议接口,返回所述执行结果。

可选地,所述执行模块包括:

文件调用单元,用于调用所述系统函数接口,根据所述命令行参数和所述命令行,调用预存储的命令行执行文件;

执行单元,用于执行所述命令行执行文件,得出所述执行结果;

其中,所述命令行执行文件为svcinfo文件或svctask文件。

可选地,所述系统函数接口为execvp接口或popen接口。

可选地,所述消息类型确定模块包括:

解析单元,用于解析所述snmp消息,得出消息类型信息;

确定单元,用于根据所述消息类型信息,确定所述消息类型。

可选地,还包括:

结果筛选模块,用于解析所述执行结果,筛选出预设信息,将所述预设信息作为返回给所述网络管理系统的消息结果。

本发明所提供的一种实现snmp协议get和set接口的方法及装置,通过接收网络管理系统的snmp消息;确定snmp消息的消息类型,上述消息类型为get消息或set消息的一种;根据消息类型,生成命令行和命令行参数;根据命令行和所述命令行参数,调用系统函数接口,执行命令行,得出执行结果;基于snmp协议接口,返回执行结果。本申请基于命令行,通过系统函数的调用,实现了snmpget&set接口;且实现简单,不破坏设备内原有架构,上层业务协议层和下层设备逻辑层分离,实现上不耦合,中间通过命令行实现对接,效率损耗不大,代码维护代价较低,架构保护上作用明显。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的实现snmp协议get和set接口方法的一种具体实施方式的流程示意图;

图2为本发明实施例所提供的实现snmp协议get和set接口装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1,图1为本发明实施例所提供的实现snmp协议get和set接口方法的一种具体实施方式的流程示意图,该方法包括以下步骤:

步骤101:接收网络管理系统的snmp消息。

可以理解,受控设备内启动的单独进程实现了snmp协议,可以通过该进行进程接收网络管理系统(nms,netmanagementsystem)发送的snmp控制指令。

步骤102:确定所述snmp消息的消息类型,所述消息类型为get消息或set消息的一种。

网络管理系统发送的snmp控制指令可能是get指令,也可能是set指令。故首先需要确定指令类型,以确定执行哪种具体操作。

作为一种具体实施方式,上述确定所述snmp消息的消息类型的过程可以具体为:解析所述snmp消息,得出消息类型信息;根据所述消息类型信息,确定所述消息类型。

步骤103:根据所述消息类型,生成命令行和命令行参数。

具体地,当所接收到的snmp消息类型为get消息时,则生成get操作的所需命令行以及相应的命令行参数;而当接收到的snmp消息类型为set消息时,则生成set操作的所需命令行和相应的命令行参数。

步骤104:根据所述命令行和所述命令行参数,调用系统函数接口,执行所述命令行,得出执行结果。

需要说明的是,上述系统函数接口可以execvp接口或popen接口,对应execvp()系统函数和popen()系统函数。这两个接口均可以执行命令行,可以根据需求调用其中一种系统函数,执行命令行。

execvp()函数可以从path环境变量所指的目录中查找符合参数file的文件名,找到后便执行该文件;然后将第二个参数argv传给该欲执行的文件。而popen()函数通过创建一个管道,调用fork产生一个子进程,执行一个shell以运行命令来开启一个进程,该进程必由pclose()函数关闭,而不是fclose()函数。

作为一种具体实施方式,上述根据所述命令行和所述命令行参数,调用系统函数接口,执行所述命令行,得出执行结果的过程具体为:调用所述系统函数接口,根据所述命令行参数和所述命令行,调用预存储的命令行执行文件;执行所述命令行执行文件,得出所述执行结果;其中,所述命令行执行文件为svcinfo文件或svctask文件。

可以理解,上述svcinfo文件对应snmp的get操作,即当消息类型为get消息时,则执行svcinfo文件;而svctask文件对应snmp的set操作,即当消息类型为set消息时,执行svctask文件。

调用系统预存储的命令行执行文件后,可以得出相应的执行结果。所得出的执行结果包含很多网络管理系统不需要的冗余信息,故作为一种具体实施方式,在上述执行所述命令行执行文件,得出所述执行结果之后还可以包括:解析所述执行结果,筛选出预设信息,将所述预设信息作为返回给所述网络管理系统的消息结果。

可以理解,上述预设信息可以是指网络管理系统需要的内容信息。

步骤105:基于snmp协议接口,返回所述执行结果。

当没有对执行结果过滤筛选时,上述执行结果为调用命令行执行文件得出的结果;当对执行结果进行过滤筛选时,上述执行结果为过滤筛选后的消息结果。

本发明实施例所提供的实现snmp协议get和set接口的方法,通过接收网络管理系统的snmp消息;确定snmp消息的消息类型,上述消息类型为get消息或set消息的一种;根据消息类型,生成命令行和命令行参数;根据命令行和所述命令行参数,调用系统函数接口,执行命令行,得出执行结果;基于snmp协议接口,返回执行结果。该方法基于命令行,通过系统函数的调用,实现了snmpget&set接口;且实现简单,不破坏设备内原有架构,上层业务协议层和下层设备逻辑层分离,实现上不耦合,中间通过命令行实现对接,效率损耗不大,代码维护代价较低,架构保护上作用明显。

下面对本发明实施例提供的实现snmp协议get和set接口装置进行介绍,下文描述的实现snmp协议get和set接口装置与上文描述的实现snmp协议get和set接口方法可相互对应参照。

图2为本发明实施例所提供的实现snmp协议get和set接口装置的结构框图,参照图2实现snmp协议get和set接口装置可以包括:

消息接收模块21,用于接收网络管理系统的snmp消息;

消息类型确定模块22,用于确定所述snmp消息的消息类型,所述消息类型为get消息或set消息的一种;

生成模块23,用于根据所述消息类型,生成命令行和命令行参数;

执行模块24,用于根据所述命令行和所述命令行参数,调用系统函数接口,执行所述命令行,得出执行结果;

返回模块25,用于基于snmp协议接口,返回所述执行结果。

作为一种具体实施方式,上述执行模块可以包括:

文件调用单元,用于调用所述系统函数接口,根据所述命令行参数和所述命令行,调用预存储的命令行执行文件;

执行单元,用于执行所述命令行执行文件,得出所述执行结果;

其中,所述命令行执行文件为svcinfo文件或svctask文件。

可选地,上述系统函数接口可以为execvp接口或popen接口。

可选地,上述消息类型确定模块可以包括:

解析单元,用于解析所述snmp消息,得出消息类型信息;

确定单元,用于根据所述消息类型信息,确定所述消息类型。

作为一种具体实施方式,上述装置还可以包括:

结果筛选模块,用于解析所述执行结果,筛选出预设信息,将所述预设信息作为返回给所述网络管理系统的消息结果。

本发明实施例所提供的实现snmp协议get和set接口装置,基于命令行,通过系统函数的调用,实现了snmpget&set接口;且实现简单,不破坏设备内原有架构,上层业务协议层和下层设备逻辑层分离,实现上不耦合,中间通过命令行实现对接,效率损耗不大,代码维护代价较低,架构保护上作用明显。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的snmp协议get和set接口方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1