snmp_pp库有关问题 snmp++
snmp_pp库问题 snmp++
配置好了snmp,通过snmpwalk能正常获取cpu 内存 硬盘信息
但是通过snmp++库编写程序,不能获取硬盘信息,错误:SNMP: Variable does not exist,不知道是为什么,求解答。程序中的oid都是没问题的啊
------解决思路----------------------
先编译链接调试人家自带的例子代码。(←这是万能回复)
配置好了snmp,通过snmpwalk能正常获取cpu 内存 硬盘信息
但是通过snmp++库编写程序,不能获取硬盘信息,错误:SNMP: Variable does not exist,不知道是为什么,求解答。程序中的oid都是没问题的啊
#include <iostream>
#include <string>
#include <snmp_pp/snmp_pp.h>
//cpu
//.1.3.6.1.4.1.2021.11.11.0 idle percentage
//.1.3.6.1.2.1.25.2.2.0 memory size
//.1.3.6.1.2.1.25.2.3.1.6.1 free_mem_used
//-
//.1.3.6.1.2.1.25.2.3.1.6.6 free_mem_buffers
//-
//.1.3.6.1.2.1.25.2.3.1.6.7 free_mem_cached
//disk
//.1.3.6.1.4.1.2021.9.1.7 disk available
//.1.3.6.1.4.1.2021.9.1.8 disk used
//.1.3.6.1.4.1.2021.9.1.9 disk used percentage
//network
const std::string cpuIdleOid("1.3.6.1.4.1.2021.9.1.7");
void get_system(){
int status;
CTarget ctarget((IpAddress)"202.127.204.190");
Oid id(cpuIdleOid.c_str());
std::cout<<id.get_printable()<<std::endl;
//ctarget.set_timeout(100);//unit 1/100s 100* 1/100s
Vb vb(Oid(cpuIdleOid.c_str()));
Pdu pdu;
Snmp snmp(status);
if(status!=SNMP_CLASS_SUCCESS){
std::cout<<snmp.error_msg(status)<<std::endl;
return;
}
pdu+=vb;
if((status=snmp.get(pdu,ctarget))!=SNMP_CLASS_SUCCESS){
std::cout<<"error:"<<snmp.error_msg(status)<<std::endl;
}else{
pdu.get_vb(vb,0);
std::cout<<"System Descriptor="<<vb.get_printable_value()<<std::endl;
}
}
int main(int argc,char**argv){
get_system();
return 0;
}
------解决思路----------------------
先编译链接调试人家自带的例子代码。(←这是万能回复)