• 大小: 5.89MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-25
  • 语言: C/C++
  • 标签: SNMP++  

资源简介

利用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个文件信息

评论

共有 条评论

相关资源