永发信息网

snmp\mfc

答案:2  悬赏:30  手机版
解决时间 2021-02-02 00:19
求一个用snmp获取陷阱信息的mfc或者winform程序!!!
程序如下(自己写也可以,用c\c++\c#):
#include"stdafx.h"
#include"afx.h"
#include"snmp_pp.h"
#include"cstringt.h"
#include
using namespace std;

#pragma comment(lib,"ws2_32.lib")
#pragma comment(lib,"snmp_pp.lib")

void type(Oid id)
{
CString str;
str=id.get_printable();
// str.Format(("%s",id.get_printable()));
switch(_ttoi(str.Right(1)))
{
case 1:
str="ColdStart";
break;
case 2:
str="WarmStart";
break;
case 3:
str="LinkDown";
break;
case 4:
str="LinkUp";
break;
case 5:
str="AuthenticationFailure";
break;
case 6:
str="EgpNeighborLoss";
break;
default:
str="EnterpriseSpecific";
break;
}
wcout<<"错误类型:"<<(LPCTSTR)str<}

void callback(int reason,Snmp *snmp,Pdu &pdu,SnmpTarget &target,void *cd)
{
Vb nextVb;
int pdu_error;
GenAddress addr;
target.get_address(addr);
UdpAddress from(addr);
CTime time=CTime::GetCurrentTime();

wcout<<"Time:"<<(LPCTSTR)time.Format("%Y-%m-%d %H:%M:%S")< cout<<"reason:"<error_msg(reason)<
pdu_error=pdu.get_error_status();

if(pdu_error)
{
cout<<"Response contains error:"<error_msg(pdu_error)< }

Oid id;
pdu.get_notify_id(id);

cout<<"ID:"< cout<<"Type:"<
for(int i=0;i {
pdu.get_vb(nextVb,i);

cout<<"oid:"< }
if(pdu.get_type()==sNMP_PDU_INFORM)
{
cout<<"pud type:"< cout<<"sending response to inform:"< nextVb.set_valude("This is the response");
pdu.set_vb(nextVb,0);
snmp->response(pdu,target);
}
type(id);
cout<}

void main(int argc,char **argv)
{
int trap_port;
if(argc<2)
trap_port=162;
else
trap_port=atoi(argv[1]);

int status;
snmp::socket_startup();
Snmp snmp(status);
if(status!=SNMP_CLASS_SUCCESS)
{
cout<<"SNMP++ Session Create Fail,"< }

OidCollection oidc;
TartetCollection targetc;

cout<<"Trying to register for traps on port"< snmp.notify_set_listen_port(trap_port);
status=snmp.notify_register(oidc,targetc,callback,NULL);
if(status!=SNMP_CLASS_SUCCESS)
{
cout<<"Error register for notify ("< < exit(1);
}
else
cout<<"Waiting for traps/informs..."<
snmp.start_poll_thread(1000);
cout<<"press return to stop\n";
getc(stdin);

snmp.stop_poll_thread();
Snmp::socket_cleanup();
}

呵呵 忘了说邮箱1015047670@qq.com
谢谢!
最佳答案
这个其实很简单啊
全部回答
你说呢...
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
简爱里的那首诗(我四肢酸痛双脚麻木,路迢迢
【体恤的意思】体恤的读音是什么求答
in 2045 i will live in a smart house. won&
霞焰的意思是什么啊?知道的请说下!
环境监测计划!看清了 只是计划!每年都要做
内镜胃息肉术后一周能吃什么,什么时候能吃鱼
浮力和压强的工式
最近我在58同城找了一份售楼的工作!但是我没
福州老人证在哪个部门办理
安全条例中一人一档指的是管理人员还是工人
华为mate7手机装上SD卡后手机铃声没有了
微信转账取消怎么处理
古劲的意思是什么啊?知道的请说下!
班级有53名同学,上体育课的时候站成7乘8队列,
青海门源有高原反应吗
推荐资讯
10KV 2500KVA应该选用什么型号断路器,电流互
狙击生死线背景音乐
1982年12月4日是我国现行宪法公布实施之日.为
【宁赠友邦 不予家奴】宁赠友邦不予家奴是什
齐齐哈尔电业局昂昂溪供电局供电营业厅地址在
富国与(),是中国梦的两大基石
求类似渣反的小说
昌河铃木利亚纳06款的发动机是日本原装进口的
【信威通信产业集团】10月26日上午,清华大学
植物生长为什么需要氧气?
云会村怎么去啊,我要去那办事
HP笔记本型号 Elitebook 2170p,键盘背景灯设
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?