SNMP++ 00-开发准备篇

来源:互联网 发布:漫步者h297 淘宝假货 编辑:程序博客网 时间:2024/06/07 04:42

阅读完本文你可以学到:

(1)在 Windows 平台下如何搭建与 SNMP 代理进行通信的开发环境(支持 SNMP V3),并给出测试程序。


一、搭建与 SNMP 代理进行通信的开发环境(支持 SNMP V3)(在 VS2013 下演示)

1. 下载 SNMP++ 和 LIBDES

SNMP++官方下载地址:http://www.agentpp.com/download.html#AGENTPP,如图1-1:


图1-1

请注意:

我一开始使用的是 SNMP++3.3.7,但编译后出现有些文件打不开,其中路径不对的问题可以 easy 解决,但有些文件根本就不存在哭后来改用 snmp++v3.2.25(下载地址:http://download.csdn.net/detail/wohenfanjian/9507541),最后测试成功。下面详细记录从无到测试成功的每一个过程。

重申一遍,以下所有内容使用的是 snmp++v3.2.25.tar.gz 及 libdes-l-4.01a.tar.gz,以下内容一定不适用于 SNMP++3.3.7.tar.gz,至于 libdes的的其他版本是否适用尚未验证也就是说,如果你使用的不是 snmp++v3.2.25.tar.gz 及 libdes-l-4.01a.tar.gz,我并不能保证阅读完本文可使你获得正确的测试结果。

2. 生成 snmp++lib 静态 lib 文件(注:snmp++lib  为你要生成的 lib 的文件名,可自拟)

(1)新建一个“Win32”项目,如图2-1:


图2-1

(2)只选择“静态库”,其余的都不选,如图2-2:(虽然看到有些博客说加上“预编译头”最后也可以成功,但是本人强烈建议“尽最大可能降低你所生成库的依赖项”)


图2-2


(3)解压先前下载好的压缩包  (下载地址:http://download.csdn.net/detail/wohenfanjian/9507541)并分别解压 libdes-l-4.01a.tar.gz 和 snmp++v3.2.25.tar.gz。如图2-3:


图2-3

(4)将文件夹 libdes-l-4.01 和 snmp++v3.2.25 拷贝到你刚刚建立的 snmp++lib 工程中,如图2-4:


图2-4

(5)添加源文件。将 snmp++lib\snmp++v3.2.25\snmp++\src 下的所有源文件添加到工程中,并将 snmp++lib\libdes-l-4.01a\libdes 下的所有源文件添加到工程中,如图2-5:


图2-5

(6)添加头文件。将 snmp++lib\snmp++v3.2.25\snmp++\include\snmp_pp 下的所有头文件添加到工程中,并将 snmp++lib\libdes-l-4.01a\libdes 下的所有头文件添加到工程中。添加方法为:项目->snmp++lib属性页->C/C++->常规->附加包含目录,如图2-6:


图2-6

(7)生成解决方案,如图2-7:


图2-7

(8)生成解决方案成功后在该工程中的Debug下找到生成的 snmp++lib.lib 文件,如图2-8:


图2-8

3. 生成 libdeslib 静态 lib 文件(和生成 snmp++lib.lib 的方法一样)。

4. 在 windows 平台下编写第一个与SNMP代理进行通信的控制台程序(使用前面生成的 snmp++lib.lib 和 libdeslib.lib)。

(1)新建一个控制台程序,项目名称为 snmptest

(2)在该工程下新建文件夹 snmp++,用于存放相关头文件及库文件,如图2-9:


图2-9

在建好 snmp++ 文件夹后,在 snmp++文件夹 下建立 include文件夹,用于存放相关头文件,并建立 lib 文件夹,用于存放 snmp++lib.lib 和 libdeslib.lib。如图2-10:


2-10

include 文件夹中存放 snmp++v3.2.25\snmp++\include\snmp_pp (这是前面解压的 snmp++v3.2.25.tar.gz)中所有的头文件及 libdes-l-4.01a\libdes(这是前面解压的 libdes-l-4.01a.tar.gz)中的所有头文件

lib 文件夹中存放  snmp++lib.lib 和 libdeslib.lib

(3)配置该工程的属性:项目->snmptest属性->链接器->输入。在附加依赖项中添加 ws2_32.lib;snmp++\lib\libdeslib;snmp++\lib\snmp++lib.lib;  。如图2-11:


图2-11

(4)测试程序为:

// snmptest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "snmp++\include\snmp_pp.h"#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){Snmp::socket_startup();CTarget target(IpAddress("10.116.2.18"), "private-xxq", "private-xxq");target.set_version(version1);Vb vb("1.3.6.1.2.1.1.1.0");Pdu pdu;pdu += vb;int status;Snmp snmp(status);if (SNMP_CLASS_SUCCESS != status){cout << snmp.error_msg(status) << endl;return -1;}cout << "目的IP:" << target.get_address().get_printable() << " 版本号:" << target.get_version() << endl;cout << "read共同体:" << target.get_readcommunity() << "  write共同体:" << target.get_writecommunity() << endl;if ( (status = snmp.get(pdu, target)) == SNMP_CLASS_SUCCESS ){pdu.get_vb(vb, 0);cout << "System Descriptor =" << vb.get_printable_value() << endl;}else{cout << snmp.error_msg(status) << endl;return -1;}Snmp::socket_cleanup();return 0;}

(5)启动并配置 SNMP代理。

参考我的另一篇博文 http://blog.csdn.net/wohenfanjian/article/details/51265047 。(注意 SNMP代理中共同体的名称必须与测试程序的共同体名称保持一致

(6)在 SNMP代理启动并配置好后,运行测试程序。结果如下:


本文生成的完整的工程见:http://download.csdn.net/detail/wohenfanjian/9507690。要成功地与本地SNMP代理进行通信,除了该工程外,你还需要对本地 SNMP代理进行配置(可参考本文相关部分)。如果你遇到 SNMP request time out问题,可参考http://blog.csdn.net/wohenfanjian/article/details/51290275。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 爱奇艺买的会员不小心删了怎么办 多次举报和拉黑克隆不了好友怎么办 货车把货拉到货主不付钱怎么办 中国银行网银公司用户名忘了怎么办 伟星管网站查不到电水管图纸怎么办 我的耕地己确权被他人侵权怎么办 掌上川电登录密码忘记了怎么办 华为商城不小心点了确认收货怎么办 买的认证服务号没有微信支付怎么办 手机微信里的外网链接打不开怎么办 微信违规无法加入群聊怎么办 苹果手机微信储存空间不足怎么办 拼多多砍价砍不到0元怎么办 妻子婚内出轨我的熟人怎么办 父亲怀疑母亲有外遇作为儿子怎么办 老婆出轨我总心理过不去坎该怎么办 失业人员离培训机构远了怎么办 遇到申请假冒商品的仅退款怎么办 微信被骗什么消息都不知道怎么办 微信用手机登录显示未注册怎么办 唯品会海淘订单取消不了怎么办 大排量摩托芯片钥匙断了怎么办 夏天太热在宿舍没空调怎么办? 汽车钥匙掉了怎么办半路到不了家 当顾客说产品太贵的时候 怎么办 邮件还没有下载被发送者删除怎么办 绝地求生号被盗了怎么办邮箱没有用 暴雪忘了密码换了手机号怎么办 华为荣耀10看电视缓冲太慢怎么办 交易猫梦幻西游手游恶意仲裁怎么办 银色高跟鞋前面尖尖蹭掉色了怎么办 苹果账号邮箱和密码都忘了怎么办 网易云密码忘记了怎么办手机号换了 超市买过期东西但没有小票怎么办 网购退货商家已收货而不退款怎么办 手机号被别人注册了京东怎么办 中通快递把我发的货弄坏了了怎么办 在淘宝获取不了丰巢柜提货码怎么办 京东快递提货码数手机号错了怎么办 腾讯手游助手不能玩刺激战场怎么办 刚收的京东快递质量有问题怎么办