1.官网下载

snmp开发,首先需要机器已经安装了snmp服务,这方面的资料网上比较完备,安装的时候注意每少一个文件,网上都可以下载到,这样可以自己形成一个包,供以后使用。只要最后snmp的服务开启就可以使用snmp服务了(刚开始trap服务可能是未开启的)
snmp++官网http://www.agentpp.com/,选择自己需要的开发包,我这里下载了snmp++v3.2.25.tar.gz,如果需要支持v3版本的数据传送功能,还需要下载libdes-l-4.01a。准备工作做完之后,我们的目的就是要生成需要的两个lib库文件。

2.编译生成libdes.lib

2.1在vs2010中新建一个win32项目,选择静态库,空项目,不需要编译头

2.2将所有需要的头文件和源文件均加入进来,截图如下:

2.3 生成解决方案,这时会在工程目录下的debug目录下出现一个lib文件,正是我们需要的

3.生成snmplib。

3.1再新建一个同样的win32项目,静态库,空项目,不需要编译头

3.2将解压后的snmp++/src目录下和libdes-l-4.01a下所有的.cpp都加入到源文件当中,同时还要将所有的.h文件加入,可以直接使用项目属性—C/C++--常规—附加包含目录,将头文件的目录加进来

3.3接下来,就生成解决方案,同样也会生成对应的lib库

4.拷贝snmplib.lib,libdes.lib,ws2_32.lib

将生成的两个lib文件及下载的ws2_32.lib都拷贝到vs2010安装目录的lib文件夹下,方面后续snmp开发

5.建立测试项目

5.1新建项目,选择win32控制台应用程序TestCip。

5.2导入头文件。

因为要用到snmp,所以还需要将snmp所需要的头文件加入到附加包含目录中,方便起见,可以将libdes的几个头文件均拷贝到snmp++的include目录下,而include下的snmp_pp文件夹是snmp单独的头文件,这样就只需引入一次头文件就可以了。
 

5.3加入lib库。

在项目属性中,链接器/输入中加入这样几项内容
 

5.4编写测试程序

  1. #include <iostream>
  2. #include "snmp_pp/snmp_pp.h"
  3. using namespace std;
  4. #define SYSDESCR "1.3.6.1.2.1.1.1.0" // Object ID for System Descriptor
  5. void get_system_descriptor(){
  6. int status;//return status
  7. CTarget ctarget((IpAddress)"192.168.1.111");
  8. Vb vb(SYSDESCR);//SNMP++ variable Binding
  9. Pdu pdu;//SNMP ++ pdu
  10. //--------[Construct a SNMP++ SNMP Object--------------
  11. Snmp snmp(status);//create a snmp  session
  12. if (status != SNMP_CLASS_SUCCESS)
  13. {
  14. cout << snmp.error_msg(status);//if fail,print error string
  15. return;
  16. }
  17. //---------[Invoke a SNMP++ Get]------------------------
  18. pdu += vb;//add the variable binding
  19. if ((status = snmp.get(pdu,ctarget)) != SNMP_CLASS_SUCCESS)
  20. {
  21. cout << snmp.error_msg(status);
  22. }
  23. else {
  24. pdu.get_vb(vb,0);//extract the variable binding
  25. cout << "System Descriptor = " << vb.get_printable_value();
  26. }
  27. }

main函数,这里就不写了,直接调用这个函数就OK

6.运行结果

 
4

snmp++开发实例一的更多相关文章

  1. ecshop二次开发 给商品添加自定义字段【包含我自己进一步的开发实例详解】

    本文包含商品自定义添加教程及进一步的开发实例: 教程: 说起自定义字段,我想很多的朋友像我一样会想起一些开源的CMS(比如Dedecms.Phpcms.帝国)等,他们是可以在后台直接添加自定义字段的. ...

  2. RDIFramework.NET -.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(WebForm版)

    RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(WebForm版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之 ...

  3. RDIFramework.NET-.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(MVC版)

    RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(MVC版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之产品管理 ...

  4. Cocos2d-x 3.X手游开发实例详解

    Cocos2d-x 3.X手游开发实例详解(最新最简Cocos2d-x手机游戏开发学习方法,以热门游戏2048.卡牌为例,完整再现手游的开发过程,实例丰富,代码完备,Cocos2d-x作者之一林顺和泰 ...

  5. 免费的HTML5连载来了《HTML5网页开发实例详解》连载(二)

    最近新浪.百度.腾讯.京东.大众点评.淘宝等流行的网站都加大了招聘HTML5的力度,HTML5开发人员成了抢手货,本次连载的是由大众点评前端工程师和一淘网前端工程师基情奉献的<HTML5网页开发 ...

  6. RDIFramework.NET开发实例━表约束条件权限的使用-Web

    RDIFramework.NET开发实例━表约束条件权限的使用-Web 在上一篇文章“RDIFramework.NET开发实例━表约束条件权限的使用-WinForm”我们讲解了在WinForm下表约束 ...

  7. RDIFramework.NET开发实例━表约束条件权限的使用-WinForm

    RDIFramework.NET开发实例━表约束条件权限的使用-WinForm 在实际的应用中,客户常有这样的需求,指定用户或角色可以看指定条件下的数据,这里的“指定条件”在RDIFramework. ...

  8. RDIFramework.NET V2.8版本 ━ 开发实例之产品管理(WinForm)

    RDIFramework.NET V2.8版本 ━ 开发实例之产品管理(WinForm) 现在,我们使用.NET快速开发整合框架(RDIFramework.NET)来开发一个应用,此应用皆在说明如何使 ...

  9. Android音乐播放器的开发实例

    本文将引导大家做一个音乐播放器,在做这个Android开发实例的过程中,能够帮助大家进一步熟悉和掌握学过的ListView和其他一些组件.为了有更好的学习效果,其中很多功能我们手动实现,例如音乐播放的 ...

随机推荐

  1. Oracle exp使用正則表達式导出部分表

    假设数据库中有许多张表,而我们又仅仅想导出须要的那几张能够使用例如以下命令 --仅仅导出test1.test2表 exp myname/mypassword@orcl file = d:\my.dmp ...

  2. Unity3D 动态地创建识别图

    前面介绍了EasyAR的单图识别,它是提前在Unity设置好图片路径的,那么如果我们的图片是存储在服务器上的,那么我们肯定不能直接把服务的图片地址填上去了.这个时候我们可以动态地创建识别图.步骤如下: ...

  3. create-react-app创建项目报错SyntaxError: Unexpected end of JSON input while parsing near '...ttachment":false,"tar' npm代理

    SyntaxError: Unexpected end of JSON input while parsing near '...ttachment":false,"tar' 错误 ...

  4. 数据结构与算法之枚举(穷举)法 C++实现

    枚举法的本质就是从全部候选答案中去搜索正确的解,使用该算法须要满足两个条件: 1.能够先确定候选答案的数量. 2.候选答案的范围在求解之前必须是一个确定的集合. 枚举是最简单.最基础.也是最没效率的算 ...

  5. Touch ID和Passcode框架,Apple Watch风格的应用布局

    本文转载至 http://www.cocoachina.com/ios/20141031/10110.html 水平滚动条(artwalk) 测试环境:Xcode 6.0,iOS 8.0     VE ...

  6. __str__ 和 __unicode__ 的区别和用法

    转自:https://www.cnblogs.com/painberg/p/8514860.html 简而言之,就是__str__和__unicode__都是为了再管理站点中加载这个表时想显示什么属性 ...

  7. 再看python多线程------threading模块

    现在把关于多线程的能想到的需要注意的点记录一下: 关于threading模块: 1.关于 传参问题 如果调用的子线程函数需要传参,要在参数后面加一个“,”否则会抛参数异常的错误. 如下: for i ...

  8. Mac下下载 mysql8.0

    终端输入一下的命令,将文件下载下来 wget --header="Cookie:MySQL_S=u1ddsnr95sraoqjcu4og46ojrcapim37; MyGUID=59f3a5 ...

  9. 【题解】POJ1934 Trip (DP+记录方案)

    [题解]POJ1934 Trip (DP+记录方案) 题意: 传送门 刚开始我是这么设状态的(谁叫我DP没学好) \(dp(i,j)\)表示钦定选择\(i\)和\(j\)的LCS,然而你会发现这样钦定 ...

  10. 【题解】Jury Compromise(链表+DP)

    [题解]Jury Compromise(链表+DP) 传送门 题目大意 给你\(n\le 200\)个元素,一个元素有两个特征值,\(c_i\)和\(d_i\),\(c,d \in [0,20]\), ...