vc snmp示例代码

标 题: vc snmp示例代码
作 者: itdef
链 接: http://www.cnblogs.com/itdef/p/4004053.html 

欢迎转帖 请保持文本完整并注明出处

先上代码:

复制代码
// 1111.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "snmp_pp.h"
#include <iostream>
#include <atlstr.h>

using namespace std;

void IpClassTest()
{
    IpAddress ip("127.0.0.1");
    cout << "ip address is:" << ip << endl;
    UdpAddress udp("127.0.0.1:8888");
    cout << "udp address is:" << udp << endl;
    cout << "udp address port is:" << udp.get_port() << endl;
    udp = "127.0.0.1";
    udp.set_port(9999);
    cout << udp << endl;
    ip = "258.0.0.1";
    if(!ip.valid())
        cout << "bad ip:258.0.0.1" << endl;
    else
        cout << "good ip:258.0.0.1" << endl;

    ip = "255.0.0.1";
    if(!ip.valid())
        cout << "error ip:255.0.0.1" << endl;
    else
        cout << "good ip:255.0.0.1" << endl;

    ip = "0.0.0.0";
    if(!ip.valid())
        cout << "error ip:0.0.0.0" << endl;
    else
        cout << "good ip:0.0.0.0" << endl;

    ip = "255.255.255.255";
    if(!ip.valid())
        cout << "error ip:255.255.255.255" << endl;
    else
        cout << "good ip:255.255.255.255" << endl;
}

void VbClassTest()
{
    Oid oid;
    oid = "1.3.6.1.2.1";
    Vb vb((Oid)"1.2.3.4.5.6");

    cout << "Vb's oid is: " << vb.get_printable_oid() << endl;
    vb.set_oid(oid);

    cout << "Vb's oid is: " << vb.get_printable_oid() << endl;
    cout << "Vb's value is: " << vb.get_printable_value() << endl;

    int i = 1000;
    vb.set_value(i);
    cout << "Vb's value is: " << vb.get_printable_value() << endl;

    int value;
    vb.get_value(value);
    cout << "Vb's value is: " << value << endl;
    vb.set_null();
    cout << "Vb's value is: " << vb.get_printable_value() << endl;
}


void SnmpClasTest()
{
    Snmp::socket_startup();
    snmp_version version = version1;
    int status;
    Snmp snmp(status,0,false);
    Pdu pdu;
    Vb vb;
    vb.set_oid((Oid)"1.3.6.1.2.1.1");
    pdu += vb;

    UdpAddress address(("127.0.0.1:161"));
    CTarget ctarget(address);
    ctarget.set_version(version);
    ctarget.set_retry(1);
    ctarget.set_timeout(100);
    ctarget.set_readcommunity("public");
    SnmpTarget *target;
    target = &ctarget;
    status = snmp.get(pdu,*target);
    if(status == SNMP_CLASS_SUCCESS)
    {
        pdu.get_vb(vb,0);
        CString reply_oid = vb.get_printable_oid();
        CString reply_value = vb.get_printable_value();
    }

    Snmp::socket_cleanup();

}


//=================================================
// main function
//=================================================
int _tmain(int argc, _TCHAR* argv[])
{
    //IpClassTest();
    VbClassTest();
    SnmpClasTest();

    return 0;
}
View Code
复制代码

IpClassTest() VbClassTest()两个函数是两个类的示例代码
SnmpClasTest() 是示范一个完整的获取SNMP信息的流程

posted on   itdef  阅读(689)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示