資源簡介
利用SNMP++軟件包實(shí)現(xiàn)了利用SNMP協(xié)議,通過訪問MIB找到網(wǎng)絡(luò)流量,內(nèi)有說明文檔,安照文檔配置,可在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();
}
//下面實(shí)現(xiàn)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); //構(gòu)造一個(gè)oid對(duì)象
snmp_version?version=version1;
int?status;
Snmp?snmp(status0false); //構(gòu)造一個(gè)snmp對(duì)象
Pdu?pdu;
Vb?vb;
vb.set_oid(baseoid);
pdu+=vb; //構(gòu)造pdu并設(shè)置vb
CTarget?ctarget(address);
ctarget.set_version(version);
ctarget.set_retry(1);
ctarget.set_timeout(100);
ctarget.set_readcommunity((LPCTSTR)community);
//構(gòu)造一個(gè)CTarget對(duì)象并設(shè)置相應(yīng)的參數(shù)
SnmpTarget?*target;
target=?&ctarget;
Oid?NextOid(baseoid); //構(gòu)造一個(gè)輔助oid?
NextOid+=“.1“;
CString?reply_oid;
CString?reply_value;
while(baseoid.nCompare(baseoid.len()NextOid)==0)
//如果NextOid以baseoid開始,進(jìn)行g(shù)etnext操作
{
status=snmp.get_next(pdu?*target);
if(status==SNMP_CLASS_SUCCESS)
{
pdu.get_vb(vb0);
//取出第一個(gè)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串到數(shù)組中
Value.Add(reply_value);
}
}
else{
AfxMessageBox(“讀取操作失敗,請檢查配置“);
return;
}
vb.set_oid(NextOid);
vb.set_null();
pdu.set_vb(vb0);
//重新設(shè)置vb,準(zhǔn)備下次循環(huán)
}
Snmp::socket_cleanup();
}
//獲得指定oid的snmp變量值,賦給reply
void?MyStringArray::GetOne(CString?&ipCString?&communityCString?&oid_strCString?&reply)
{
Snmp::socket_startup();
UdpAddr
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????82083??2010-06-07?09:37??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\MyStringArray.obj
?????文件??????????0??2010-06-07?09:37??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\MyStringArray.sbr
?????文件?????107078??2010-06-03?13:57??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\StdAfx.obj
?????文件????1379496??2010-06-03?13:57??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\StdAfx.sbr
?????文件????5252096??2011-02-18?22:32??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\traffic1.bsc
?????文件????2535537??2011-02-18?22:32??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\traffic1.exe
?????文件????2951372??2011-02-18?22:32??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\traffic1.ilk
?????文件??????17191??2011-02-18?22:32??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\traffic1.obj
?????文件????7105364??2010-06-03?13:57??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\traffic1.pch
?????文件????4891648??2011-02-18?22:32??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\traffic1.pdb
?????文件???????9040??2010-06-06?21:35??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\traffic1.res
?????文件??????????0??2011-02-18?22:32??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\traffic1.sbr
?????文件??????43842??2010-06-07?10:05??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\traffic1Dlg.obj
?????文件??????????0??2010-06-07?10:05??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\traffic1Dlg.sbr
?????文件?????254976??2011-02-18?22:35??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\vc60.idb
?????文件?????421888??2011-02-18?22:32??SNMP++瀏覽統(tǒng)計(jì)\traffic1\Debug\vc60.pdb
?????文件???????7437??2010-06-07?00:44??SNMP++瀏覽統(tǒng)計(jì)\traffic1\MyStringArray.cpp
?????文件???????1662??2010-06-07?09:37??SNMP++瀏覽統(tǒng)計(jì)\traffic1\MyStringArray.h
?????文件???????3615??2010-06-01?10:21??SNMP++瀏覽統(tǒng)計(jì)\traffic1\ReadMe.txt
?????文件???????1078??2010-06-01?10:21??SNMP++瀏覽統(tǒng)計(jì)\traffic1\res\traffic1.ico
?????文件????????400??2010-06-01?10:21??SNMP++瀏覽統(tǒng)計(jì)\traffic1\res\traffic1.rc2
?????文件????????915??2010-06-06?21:35??SNMP++瀏覽統(tǒng)計(jì)\traffic1\resource.h
?????文件????1639082??2010-06-04?21:42??SNMP++瀏覽統(tǒng)計(jì)\traffic1\snmp_pp.lib
?????文件????????210??2010-06-01?10:21??SNMP++瀏覽統(tǒng)計(jì)\traffic1\StdAfx.cpp
?????文件???????1102??2010-06-01?10:21??SNMP++瀏覽統(tǒng)計(jì)\traffic1\StdAfx.h
?????文件??????21792??2011-02-18?22:31??SNMP++瀏覽統(tǒng)計(jì)\traffic1\traffic1.aps
?????文件???????1534??2011-02-18?22:43??SNMP++瀏覽統(tǒng)計(jì)\traffic1\traffic1.clw
?????文件???????2185??2010-06-01?18:17??SNMP++瀏覽統(tǒng)計(jì)\traffic1\traffic1.cpp
?????文件???????4331??2010-06-07?10:32??SNMP++瀏覽統(tǒng)計(jì)\traffic1\traffic1.dsp
?????文件????????541??2010-06-01?10:21??SNMP++瀏覽統(tǒng)計(jì)\traffic1\traffic1.dsw
............此處省略15個(gè)文件信息
評(píng)論
共有 條評(píng)論