资源简介
利用SNMP++软件包实现了利用SNMP协议,通过访问MIB找到网络流量,内有说明文档,安照文档配置,可在vc6.0下编译通过!
代码片段和文件信息
// MyStringArray.cpp: implementation of the MyStringArray class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “traffic1.h“
#include “MyStringArray.h“
#include “snmp_pp.h“
#include “snmp_pp/oid.h“
#include “errno.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
MyStringArray::MyStringArray()
{
err=““;
}
MyStringArray::~MyStringArray()
{}
void MyStringArray::Add(CString &s_Oid CString &s_Value)
{
OidStr.Add(s_Oid);
Value.Add(s_Value);
}
CString MyStringArray::GetOid(int index)
{
if(index return OidStr.GetAt(index);
else
return err;
}
CString MyStringArray::GetValue(int index)
{
if(index return Value.GetAt(index);
else
return err;
}
void MyStringArray::SetValue(int index CString Str)
{
Value.SetAt(index(LPCTSTR)Str);
}
int MyStringArray::GetCount()
{
return OidStr.GetSize();
}
void MyStringArray::clear()
{
OidStr.RemoveAll();
Value.RemoveAll();
}
//下面实现SNMP基本操作
void MyStringArray::GetTree(CString &ipCString &communityCString &oid_str)
{
Snmp::socket_startup();
UdpAddress address((LPCTSTR)ip);
address.set_port(161);
Oid baseoid((LPCTSTR)oid_str); //构造一个oid对象
snmp_version version=version1;
int status;
Snmp snmp(status0false); //构造一个snmp对象
Pdu pdu;
Vb vb;
vb.set_oid(baseoid);
pdu+=vb; //构造pdu并设置vb
CTarget ctarget(address);
ctarget.set_version(version);
ctarget.set_retry(1);
ctarget.set_timeout(100);
ctarget.set_readcommunity((LPCTSTR)community);
//构造一个CTarget对象并设置相应的参数
SnmpTarget *target;
target= &ctarget;
Oid NextOid(baseoid); //构造一个辅助oid?
NextOid+=“.1“;
CString reply_oid;
CString reply_value;
while(baseoid.nCompare(baseoid.len()NextOid)==0)
//如果NextOid以baseoid开始,进行getnext操作
{
status=snmp.get_next(pdu *target);
if(status==SNMP_CLASS_SUCCESS)
{
pdu.get_vb(vb0);
//取出第一个vb
vb.get_oid(NextOid);
//取出返回的OID,存放到NextOid中
reply_oid=vb.get_printable_oid();
reply_value=vb.get_printable_value();
if(reply_value.GetLength()==0)
reply_value==“NULL“;
//如果操作成功,取出返回的oid及值
if(baseoid.nCompare(baseoid.len()NextOid)==0)
{
reply_oid.TrimLeft();//去除两边的空白
reply_oid.TrimRight();
reply_value.TrimLeft();
reply_value.TrimRight();
OidStr.Add(reply_oid); //保存oid串到数组中
Value.Add(reply_value);
}
}
else{
AfxMessageBox(“读取操作失败,请检查配置“);
return;
}
vb.set_oid(NextOid);
vb.set_null();
pdu.set_vb(vb0);
//重新设置vb,准备下次循环
}
Snmp::socket_cleanup();
}
//获得指定oid的snmp变量值,赋给reply
void MyStringArray::GetOne(CString &ipCString &communityCString &oid_strCString &reply)
{
Snmp::socket_startup();
UdpAddr
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 82083 2010-06-07 09:37 SNMP++浏览统计\traffic1\Debug\MyStringArray.obj
文件 0 2010-06-07 09:37 SNMP++浏览统计\traffic1\Debug\MyStringArray.sbr
文件 107078 2010-06-03 13:57 SNMP++浏览统计\traffic1\Debug\StdAfx.obj
文件 1379496 2010-06-03 13:57 SNMP++浏览统计\traffic1\Debug\StdAfx.sbr
文件 5252096 2011-02-18 22:32 SNMP++浏览统计\traffic1\Debug\traffic1.bsc
文件 2535537 2011-02-18 22:32 SNMP++浏览统计\traffic1\Debug\traffic1.exe
文件 2951372 2011-02-18 22:32 SNMP++浏览统计\traffic1\Debug\traffic1.ilk
文件 17191 2011-02-18 22:32 SNMP++浏览统计\traffic1\Debug\traffic1.obj
文件 7105364 2010-06-03 13:57 SNMP++浏览统计\traffic1\Debug\traffic1.pch
文件 4891648 2011-02-18 22:32 SNMP++浏览统计\traffic1\Debug\traffic1.pdb
文件 9040 2010-06-06 21:35 SNMP++浏览统计\traffic1\Debug\traffic1.res
文件 0 2011-02-18 22:32 SNMP++浏览统计\traffic1\Debug\traffic1.sbr
文件 43842 2010-06-07 10:05 SNMP++浏览统计\traffic1\Debug\traffic1Dlg.obj
文件 0 2010-06-07 10:05 SNMP++浏览统计\traffic1\Debug\traffic1Dlg.sbr
文件 254976 2011-02-18 22:35 SNMP++浏览统计\traffic1\Debug\vc60.idb
文件 421888 2011-02-18 22:32 SNMP++浏览统计\traffic1\Debug\vc60.pdb
文件 7437 2010-06-07 00:44 SNMP++浏览统计\traffic1\MyStringArray.cpp
文件 1662 2010-06-07 09:37 SNMP++浏览统计\traffic1\MyStringArray.h
文件 3615 2010-06-01 10:21 SNMP++浏览统计\traffic1\ReadMe.txt
文件 1078 2010-06-01 10:21 SNMP++浏览统计\traffic1\res\traffic1.ico
文件 400 2010-06-01 10:21 SNMP++浏览统计\traffic1\res\traffic1.rc2
文件 915 2010-06-06 21:35 SNMP++浏览统计\traffic1\resource.h
文件 1639082 2010-06-04 21:42 SNMP++浏览统计\traffic1\snmp_pp.lib
文件 210 2010-06-01 10:21 SNMP++浏览统计\traffic1\StdAfx.cpp
文件 1102 2010-06-01 10:21 SNMP++浏览统计\traffic1\StdAfx.h
文件 21792 2011-02-18 22:31 SNMP++浏览统计\traffic1\traffic1.aps
文件 1534 2011-02-18 22:43 SNMP++浏览统计\traffic1\traffic1.clw
文件 2185 2010-06-01 18:17 SNMP++浏览统计\traffic1\traffic1.cpp
文件 4331 2010-06-07 10:32 SNMP++浏览统计\traffic1\traffic1.dsp
文件 541 2010-06-01 10:21 SNMP++浏览统计\traffic1\traffic1.dsw
............此处省略15个文件信息
评论
共有 条评论