网络管理讲义_winsnmp应用简介

上传人:xzh****18 文档编号:50531570 上传时间:2018-08-08 格式:PPT 页数:48 大小:311.50KB
返回 下载 相关 举报
网络管理讲义_winsnmp应用简介_第1页
第1页 / 共48页
网络管理讲义_winsnmp应用简介_第2页
第2页 / 共48页
网络管理讲义_winsnmp应用简介_第3页
第3页 / 共48页
网络管理讲义_winsnmp应用简介_第4页
第4页 / 共48页
网络管理讲义_winsnmp应用简介_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《网络管理讲义_winsnmp应用简介》由会员分享,可在线阅读,更多相关《网络管理讲义_winsnmp应用简介(48页珍藏版)》请在金锄头文库上搜索。

1、WinSnmp简介主要内容WinSnmp 概念和结构WinSnmp 的几个重要概念WinSnmp 常用函数介绍WinSnmp GetNext实现方法举例说明什么是WinSnmpWinSNMP的目的是为在Windows下开发基于 SNMP的网络管程序提供解决方案。它为 SNMP网管开发者提供了必须遵循的开放式单 一接口规范,它定义了过程调用、数据类型、 数据结构和相关的语法。总的来说, WinSNMP以函数的形式封装了SNMP协议的 各部分(在VC+6.0开发环境中体现为 wsnmp32.dll、wsnmp32.lib和winsnmp.h ),且针对SNMP是使用UDP的特点而设置了 消息重传、

2、超时机制等。WinSnmp 体系结构WinSnmp 几个重要的概念在此我们主要介绍在VC6.0下Snmp的管理站 程序设计WinSnmp 几个重要的概念Community(共同体名):我们可以将此名称理解为带 有权限的登陆名称。一般权限分为只读权限(默认为 public)和读写权限(默认为private)。Oid(对象标识符):是以SMI(Structure of Management Information)管理信息结构为基础的一 系列点分符号,如1.3.6.1.2.1.1.1,这些点分符号在任 何网络设备中都唯一标识某一个数据参数。他们的 集合就是MIB(Management Inform

3、ation Base)管理 信息库。WinSnmp 几个重要的概念SNMP支持层次: WinSNMP支持四个层次的SNMP操作: Level 0 = 只有消息编码/解码Level 1 = Level 0 +与SNMPv1代理的通信Level 2 = Level 1 +与SNMPv2代理的通信Level 3 = Level 2 +与其它SNMPv2管理站的通信 因为SNMP协议支持SNMPv1与SNMPv2的共存,所 以WinSNMP实现能提供对两个版本协议的支持。 SnmpStartup函数能返回当前WinSNMP实现所能 提供的最大支持层次。WinSnmp 几个重要的概念三种Entity/C

4、ontext转换模式如下:SNMPAPI_TRANSLATED = 通过本地数据库查询转 换 SNMPAPI_UNTRANSLATED_V1 = 转换为IP地址 和共同体(community)字符串 SNMPAPI_UNTRANSLATED_V2 = SNMPv2的 party和context IDs. 我们可以通过SnmpStartup函数获得当前默认的 entity/context转换模式, SnmpSetTranslatedMode函数可以用来设置 entity/context转换模式。WinSnmp 几个重要的概念本地数据库(Local Database) 本地数据库主要存储重传模式(

5、 RetransmitMode)、重试次数(Retry)、 超时(timeout)、转换模式( TranslateMode)等值。我们可以对其中的数 据进行读(get)、写(set)操作。WinSnmp 几个重要的概念会话(session) 会话是用来管理WinSNMP应用程序和WinSNMP实 现之间的连接,由SnmpCreateSession(推荐)或 SnmpOpen函数创建。会话是资源管理的最小单位 ,也是WinSNMP应用程序和WinSNMP实现之间通 信管理的最小单位。一个好的WinSNMP应用程序应 该使用会话结构逻辑地管理它的操作,并将实现中 的资源需求控制在最小。 调用Snm

6、pCreateSession或SnmpOpen函数创建 一个会话时,会返回一个“session id”,这是一个句 柄(handle)变量,WinSNMP用它来管理自己的资 源。应用程序最终应调用SnmpClose函数将会话释 放。WinSnmp 几个重要的概念异步模式:WinSNMP API中几乎所有函数都有异步成分 ,有些则是完全异步的。有三个非常重要的异 步函数:SnmpSendMsg (发送数据)SnmpRecvMsg (接收数据)SnmpRegister (注册接受trap消息) WinSNMP的整个编程模式就是基于异步和消 息驱动的。WinSnmp 几个重要的概念内存管理(Memo

7、ry Management) WinSNMP包括三种不同的内存“对象”:句柄式资源 C风格(以NULL结尾)的字符串WinSNMP API结构类型 五种句柄式资源:HSNMP_SESSION, HSNMP_ENTITYHSNMP_CONTEXT, HSNMP_PDUHSNMP_VBLWinSnmp 几个重要的概念C风格字符串 (C-Stytle Strings)C风格的字符串主要用来为通用的字符串表示 与Entity和对象标识符(OID)对象之间的转换 提供便利。WinSNMP中使用C风格字符串的 函数有:SnmpStrToEntity、 SnmpEntityToStr、SnmpStrToOi

8、d、 SnmpOidToStr。 C风格字符串的内存分配、管理和释放完全由 应用程序负责。因此我们还需要传递“size”参 数给使用它的函数。WinSnmp 几个重要的概念二种数据结构typedef struct smiUINT32 len; / number of array /elements smiLPUINT32 ptr; / pointer to an array /of subidentifiers smiOID, *smiLPOID;有两个类型,第一个用来指定他有多少个 数字,第二个则指向一个一维数组,举个例子 ,如果一个对象标志符是1.3.6.1.2.1.1.1,那么 len应

9、该为8,ptr应该指向一个数组,该数组 的元素由1,3,6,1,2,1,1,1组成.WinSnmp 几个重要的概念 typedef struct / smiVALUE portion of VarBind smiUINT32 syntax; / Insert SNMP_SYNTAX_ union smiINT sNumber; / SNMP_SYNTAX_INT / SNMP_SYNTAX_INT32 smiUINT32 uNumber; / SNMP_SYNTAX_UINT32 / SNMP_SYNTAX_CNTR32 / SNMP_SYNTAX_GAUGE32 / SNMP_SYNTAX_

10、TIMETICKS smiCNTR64 hNumber; / SNMP_SYNTAX_CNTR64 smiOCTETS string; / SNMP_SYNTAX_OCTETS / SNMP_SYNTAX_BITS / SNMP_SYNTAX_OPAQUE / SNMP_SYNTAX_IPADDR / SNMP_SYNTAX_NSAPADDR smiOID oid; / SNMP_SYNTAX_OID smiBYTE empty; / SNMP_SYNTAX_NULL / SNMP_SYNTAX_NOSUCHOBJECT / SNMP_SYNTAX_NOSUCHINSTANCE / SNMP_

11、SYNTAX_ENDOFMIBVIEW value; / union smiVALUE, *smiLPVALUE; WinSnmp 几个重要的概念该结构有两个类型构成,一个是smiUINT32 syntax; 另一个看上去挺复杂,是一个共同体 类型 .当get的数据返回时syntax表明了返回数据的 类型,而在共同体中的相应类型的变量中存储 了我们所要求的值。WinSnmp 几个重要的概念 内存的释放 WinSNMP应用程序必须负责释放所有通过调 用WinSNMP API函数所分配的资源,主要有 以下三类函数: SnmpFree: 释放Entity、Context、 Pdu、Vbl、Descr

12、iptorSnmpClose : 关闭会话SnmpCleanup : 必须在程序结束之前调用 ,释放所有资源 应用程序推荐使用上述的顺序来释放所有的 WinSNMP资源。WinSnmp 编程概要 和其他编程过程一样,整个SNMP编程也是 经过一个创建,执行,销毁的过程,初始化 SNMP环境即加载SNMP的功能,接着就要执 行所进行的操作,SNMP是基于消息机制的, 所以消息传递与管理是我们在编程中所必须注 意的问题,最后要进行销毁和回收资源,这一 点我们必须注意,因为如果不销毁这些资源系 统将不会自动回收这些资源,将会导致资源无 法释放而挂起。WinSnmp编程基本步骤初始化SNMP环境(设置

13、传输模式,重传方 案和延时)创建会话创建变量绑定表和PDU传输数据接收数据释放资源WinSnmp常用函数介绍初始化SNMP,用到的函数是 SnmpStartup(smiLPUINT32 nMajorVersion,smiLPUINT32 nMinorVersion,smiLPUINT32 nLevel,smiLPUINT32 nTranslateMode,smiLPUINT32 nRetransmitMode);五个参数作为接收参数返回SNMP 的主版本号,副版本号,支持最高的操作标准 ,默认的实体/上下文传输模式,默认的重发 机制。WinSnmp常用函数介绍设置传输模式,用到的函数是SNMP

14、API_STATUS SnmpSetTranslateMode(smiUINT32 nTranslateMode / new entity/context translation mode );该函数只有一个参数,有以下几种选择 :SNMPAPI_TRANSLATED 不常用SNMPAPI_UNTRANSLATED_V1 版本V1SNMPAPI_UNTRANSLATED_V2 版本V2你可以选择任一个参数,第二和第三个 参数其区别是在版本一中get_bulk的操作不被允许 ,因为版本一不支持这种操作.WinSnmp常用函数介绍设置重传模式,用到的函数是 SNMPAPI_STATUS SnmpS

15、etRetransmitMode(smiUINT32 nRetransmitMode / new retransmission mode ); 该函数只有一个参数,有以 下两种选择 SNMPAPI_ON 启动重传模式SNMPAPI_OFF 关闭重传模式 WinSnmp常用函数介绍设置重传次数,用到的函数是SNMPAPI_STATUS SnmpSetRetry(SNMP_ENTITY hEntity,/ destination management entity smiUINT32 nPolicyRetry / new retry count value for database );该函数的第一个参数是代理或 者管理站实体句炳,通常我们设置目标实体的 重传次数,也就是接收消息的网络设备的实体 。第二个参数是重传次数。WinSnmp常用函数介绍设置超时时间,用到的函数是 SNMPAPI_STATUS SnmpSetTimeout(HSNMP_ENTITY hEntity, / destination management entity smiTIMETICKS n

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 多媒体应用

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号