近来想学习snmp方面的,但是网上搜了很少这方面的书,Visual C++开发基于SNMP的网络管理软件(第2版)只有这本看上去比较实用,可惜的是没有pdf版下载。
http://blog.sina.com.cn/s/blog_56f098eb0100099m.html 这里有五六篇是vc6使用snmp的笔记
所以决定使用snmp++还操作snmp,首先去http://www.agentpp.com/snmp_pp3_x/download_snmp_ppv3/download_snmp_ppv3.html
主要的是下载 libdes以及snmp++ |
再去百度文库下载snmp++中文说明资料。
以下为网上转载,由于之前保存为txt文本文件,现在不知网址出在那里。
vc6.0编译snmp++生成snmp_pp.lib F#CC++C#Microsoft.1、首先下载snmp++v3.2.25(snmp++v3.2.25.tar.gz)和libdes-l-4.01a(libdes-l-4.01a.tar.gz)
http://www.agentpp.com/snmp_pp3_x/download_snmp_ppv3/download_snmp_ppv3.html
此处提供了官方链接,下载完毕后解压即可
注意:
Please note that the SNMPv3 support in SNMP++ can be disabled by undefining _SNMPv3 in
config_snmp_pp.h. In that case the DES library is optional.
由于支持为了snmpv3,libdes-l-4.01a.tar.gz是必需的,如果不需要支持,可以将config_snmp_pp.h中
// #define _NO_SNMPv3 前的注释符号去掉
2、打开vc6.0,File->new->Projects 选择 Win32 Static Library
工程名字为snmp_pp 点击OK Finish即可
切换到FileView,可以看到Source Files和Header Files
右键点击Source Files,选择Add Files to Folder,将snmp++v3.2.25\snmp++\src下的所有cpp文件添加进来
同时将libdes-l-4.01a\libdes下的所有c文件添加进来
键点击Header Files,选择Add Files to Folder,将snmp++v3.2.25\snmp++\include\snmp_pp下所有.h文件
添加进来
同时将libdes-l-4.01a\libdes下的所有.h文件添加进来
3、Tools->Options,选择Directories,添加目录
F:\snmp++v3.2.25\snmp++\include
F:\snmp++v3.2.25\snmp++\include\snmp_pp
F:\libdes-l-4.01a\libdes
根据自己的解压目录决定
4、Project->Settings,选择C/C++
Category设置为Code Generation
User run-time library设置为Debug Multithreaded
5、Build->Build snmp_pp.lib
提示错误
F:\snmp++v3.2.25\snmp++\src\auth_priv.cpp(286) : error C2371: 'i' : redefinition; different basic types F:\snmp++v3.2.25\snmp++\src\auth_priv.cpp(267) : see declaration of 'i'
解决:打开文件auth_priv.cpp,错误原因是变量i重复定义,将267行
for (int i = 0; i < auth_size; i++) auth[i] = 0;
改为
for (int m = 0; m < auth_size; m++) auth[m] = 0;
次编译即可成功,将编译后的snmp_pp.lib拷贝到Microsoft Visual Studio\VC98\Lib,即可使用(方便)
snmp基本资料,需要查看tcp/ip协议那本书。
建一个工程,把snmp_pp.lib加入工程里。
Oid o1("1.3.6.1.2.1.7.1");
MessageBox(o1.get_printable());
可以显示1.3.6.1.2.1.7.1表示环境已OK
上面的oid是对象标识