snmp.get获取的内容为空
代码如下,简单的测试代码
#include <iostream>
#include "snmp_pp/snmp_pp.h"
using namespace std;
using namespace Snmp_pp;
#define SYSDESCR ".1.3.6.1.2.1.1.1.0" // Object ID for System Descriptor
void get_system_descriptor()
{
int status;//return status
IpAddress ipaddress("192.168.1.78");
CTarget ctarget(ipaddress, "bvt", "gefeiW");
Vb vb(SYSDESCR);//SNMP++ variable Binding
Pdu pdu;//SNMP ++ pdu
//--------[Construct a SNMP++ SNMP Object--------------
Snmp snmp(status);//create a snmp session
if (status != SNMP_CLASS_SUCCESS)
{
cout << snmp.error_msg(status);//if fail,print error string
return;
}
//---------[Invoke a SNMP++ Get]------------------------
pdu += vb;//add the variable binding
if ((status = snmp.get(pdu, ctarget)) != SNMP_CLASS_SUCCESS)
{
cout << snmp.error_msg(status);
}
else
{
pdu.get_vb(vb, 0);//extract the variable binding
cout << "System Descriptor= " << vb.get_printable_value()<< endl;
}
}
int main()
{
Snmp::socket_startup();
get_system_descriptor();
Snmp::socket_cleanup();
return 0;
}
运行结果显示为空,经过调试发现进行snmp.get后pdu中vb的value值为无法读取内存,正常的应该是为空
这是为什么呢,求解答