winsnmp开发一.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在Windows下实现SNMP协议的编程,可以采用Winsock接口,在161,162端口通过udp传送信息。在Windows 2000中,Microsoft已经封装了SNMP协议的实现,提供了一套可供在Windows下开发基于SNMP的网络管理程序的接口,这就是WinSNMP API。 WinSNMP为在Windows下开发基于SNMP的网络管程序提供解决方案。它为SNMP网管开发者提供了必须遵循的开放式单一接口规范,它定义了过程调用、数据类型、数据结构和相关的语法。 WinSNMP以函数的形式封装了SNMP协议的各部分(在VC++6.0开发环境中体现为wsnmp32.dll、wsnmp32.lib和winsnmp.h),包括PDU、VarBindList以及协议操作的各项函数。并且针对SNMP是使用UDP的特点而设置了消息重传、超时机制等。 基于WinSNMP的应用程序必须通过wsnmp32.dll动态链接库访问WinSNMP API函数, WinSNMP API提供了七大类,约50个API函数。 下面将以SNMPv1协议为例,具体描述WinSNMP的一般编程模式。 一次完整的SNMP基本步骤如下: 一、应用以下三个函数实现WinSNMP通信初始化: 1、SnmpStartup 2、SnmpSetTranslateMode 3、SnmpSetRetransmitMode 二、应用如下函数生成WinSNMP会话句柄: 4、SnmpCreateSession 三、根据设定的IP地址应用如下函数将源和目的主机的IP地址转换为实体句柄: 5、SnmpStrToEntity 四、调用如下函数将设定的Community转换为安全控制的上下文通信句柄: 6、SnmpStrToContext 五、调用如下函数生成并绑定要访问的MIB中的OID: 7、SnmpCreateVbl 8、SnmpSetVb 六、调用如下函数生成SNMP协议通信数据单元: 9、SnmpCreatePdu 七、发送指定OID请求访问: 10、SnmpSendMsg 八、接收从代理返回的请求响应: 11、SnmpRecvMsg 九、清除SNMP通信过程中生成的变量所占用的内存空间: 12、SnmpCleanup 一、WinSNMP发送请求消息 WinSNMP发送请求消息的过程可以分为四个部分,主要有: 1、WinSNMP的初始化 2、PDUs的创建 3、发送信息 4、资源的释放 1、 WinSNMP的初始化 (1) 调用SnmpStartup函数启动WinSNMP。 (2) 调用SnmpCreateSession函数创建一个会话session。 (3) 调用SnmpSetRetransmitMode函数设置重传模式。 (4) 调用SnmpSetRetry函数设置重传次数。 (5) 调用SnmpSetTimeout函数设置超时时间。 其中第3、4、5步都是对本地数据库的操作,完成了对WinSNMP相关参数的设置。 2、 创建协议数据单元(PDUs) 在创建PDU之前,必须先创建变量绑定表(varbindlists)。 调用SnmpStrToOid函数创建读取对象的OID, 例如,用户想获取MIB变量ipInReceives的信息(一个实例的OID为1.3.6.1.2.1.4.3.0),可以采用下面的代码得到该变量对象标识符的二进制表示: LPCSTR name=1.3.6.1.2.1.4.3.0; smiOID Oid; SnmpStrToOid(name,Oid); (2) 调用SnmpCreateVbl函数创建变量绑定表。 HSNMP_VBL m_hvbl=SnmpCreateVbl(session,Oid,NULL);/*NULL表示该OID的值为空*/ (3) 调用SnmpSetVb函数往变量绑定表中添加变量绑定,需先创建一个OID,命名为Oid。 SnmpSetVb(m_hvbl,0,Oid,NULL);/* 0表示往变量绑定表中添加变量绑定,非0值表示修改此位置的变量绑定*/ 3、 发送信息 首先调用SnmpStrToContext和SnmpStrToEntity函数创建共同体(community)字符串和代理entity, 然后,调用SnmpSendMsg函数发送信息。 SnmpSendMsg(session,0,hAgent, hView, m_hpdu); 4、资源的释放 最后,调用SnmpFreeVbl、SnmpFreePdu、

文档评论(0)

wxc6688 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档