• 大小: 24.7MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-28
  • 语言: 其他
  • 标签: SNMP++  

资源简介

基于SNMP++提取进程内存使用,CPU占用率,进程名称,PID,路径等信息的功能函数,生成了DLL,源码与测试例程送上

资源截图

代码片段和文件信息

#include “snmp_pp/snmp_pp.h“
#include  
#include 
#include 
#include
#include 
#pragma comment(lib“SNMP++.lib“)
#pragma comment(lib“libdes.lib“)
#ifdef WIN32
#define strcasecmp stricmp
#endif

#ifdef SNMP_PP_NAMESPACE
using namespace Snmp_pp;
#endif

#if (__GNUC__ > 2)
#include 
using std::cerr;
using std::cout;
using std::endl;
using std::flush;
#else
#include 
#endif
#define NUM_SYS_VBS 2
#define sysDescr “.1.3.6.1.2.1.25.1.2.0“//系统当前日期时间OID
#define sysobjectID “.1.3.6.1.2.1.25.1.1.0“//系统运行OID
#define coldStart “1.3.6.1.6.3.1.1.4.3.0.1“
/*定义了Oid数组,Process结构体,
以及extern int sum_cpu_t1 = 0;//t1时刻CPU总占用率
extern int sum_cpu_t2 = 0;//t2时刻CPU总占用率
等变量*/
Oid full_oid[200];//读取OID一列数据中间存储变量数组
struct  Process//获取系统进程名称,PID,路径,t1时刻CPU占用率,t2时刻CPU占用率,内存占用率,进程在t2-t1时刻的CPU占用率
{
char name[50];
char PID[20];
char Path[100];
Oid OID;
int Cpu_used_t1;
int Cpu_used_t2;
int Mem_used;
float Cpu_used_percent_for_each_process;

};
extern int sum_cpu_t1 = 0;//t1时刻CPU总占用率
extern int sum_cpu_t2 = 0;//t2时刻CPU总占用率
/*===========================================================
函数名称:Get_time
函数功能:获取当前系统时间以及系统开启时间
函数参数:char *genAddrStr 输入主机地址(“127.0.0.1“)
返回值:  无返回值
=============================================================*/
void Get_time(char *genAddrStr)
{
//=======================================================
const char *a = 0;/*等号之间变量为用于将提取到的OID内容进行char*到int型的转换的中间变量*/
char a1[19] = { 0 };
char a2[12] = { 0 };
int a3[6] = { 0 };
const char *a4 = { 0 };
char a5[4] = { 0 };
char a6[3] = { 0 };
int a7 = 0;
float a8 = 0.0;
float a9 = 0.0;
int run_time = 0.0;
int now_time_min = 0.0;
int used_time_min = 0.0;
int open_hour = 0.0;
int open_min = 0.0;
int day_time = 0;
int day_time_min = 0;
int bbb = 0;
//========================================================
int status;
char *req_str = (char*) “get“;
char *dflt_trp_oid = (char*)coldStart;
//char *genAddrStr = (char*) “127.0.0.1“;   // localhost
char *oid_str = (char*)NULL;
Snmp::socket_startup();  // Initialize socket subsystem
IpAddress ipAddr(genAddrStr);
if (!ipAddr.valid()) {
cout << “Invalid destination: “ << genAddrStr << endl;
}
// bind to any port and use IPv6 if needed
Snmp snmp(status 0 (ipAddr.get_ip_version() == Address::version_ipv6));
if (status){
cout << “Failed to create SNMP Session: “ << status << endl;
}
cout << “Created session successfully“ << endl;
CTarget target(ipAddr);
if (!target.valid()) {
cout << “Invalid target“ << endl;
}
Pdu pdu;
Vb vb;
if (strcmp(req_str “get“) == 0) {
Vb vbl[NUM_SYS_VBS];
vbl[0].set_oid(sysDescr);
vbl[1].set_oid(sysobjectID);
cout << “Send a GET-REQUEST to: “ << ipAddr.get_printable() << endl;
if (!oid_str) {
//if (strcmp(genAddrStr “localhost“) == 0 ||
// strcmp(genAddrStr “127.0.0.1“) == 0){
pdu.set_vblist(vbl NUM_SYS_V

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-08-04 15:59  2222 - 副本\
     目录           0  2017-07-26 17:34  2222 - 副本\2222\
     文件        4941  2017-07-26 15:42  2222 - 副本\2222\2222.vcxproj
     文件        1280  2017-07-25 14:18  2222 - 副本\2222\2222.vcxproj.filters
     文件         165  2017-07-25 14:02  2222 - 副本\2222\2222.vcxproj.user
     目录           0  2017-07-26 10:23  2222 - 副本\2222\Debug\
     文件        1713  2017-07-25 15:31  2222 - 副本\2222\Debug\2222.Build.CppClean.log
     文件        4107  2017-07-26 10:23  2222 - 副本\2222\Debug\2222.log
     目录           0  2017-07-26 10:23  2222 - 副本\2222\Debug\2222.tlog\
     文件         207  2017-07-26 10:23  2222 - 副本\2222\Debug\2222.tlog\2222.lastbuildstate
     文件        4508  2017-07-26 10:23  2222 - 副本\2222\Debug\2222.tlog\2222.write.1u.tlog
     文件      105534  2017-07-26 10:23  2222 - 副本\2222\Debug\2222.tlog\CL.read.1.tlog
     文件        3602  2017-07-26 10:23  2222 - 副本\2222\Debug\2222.tlog\CL.write.1.tlog
     文件        3602  2017-07-26 10:23  2222 - 副本\2222\Debug\2222.tlog\cl.command.1.tlog
     文件        3620  2017-07-26 10:23  2222 - 副本\2222\Debug\2222.tlog\link.command.1.tlog
     文件        8420  2017-07-26 10:23  2222 - 副本\2222\Debug\2222.tlog\link.read.1.tlog
     文件        1756  2017-07-26 10:23  2222 - 副本\2222\Debug\2222.tlog\link.write.1.tlog
     文件      313030  2017-07-26 10:23  2222 - 副本\2222\Debug\dllgenerator.obj
     文件       28870  2017-07-26 09:17  2222 - 副本\2222\Debug\dllmain.obj
     文件     1149952  2017-07-26 10:23  2222 - 副本\2222\Debug\vc120.idb
     文件      552960  2017-07-26 10:23  2222 - 副本\2222\Debug\vc120.pdb
     目录           0  2017-07-26 15:42  2222 - 副本\2222\Release\
     文件        3743  2017-07-26 15:42  2222 - 副本\2222\Release\2222.log
     目录           0  2017-07-26 15:42  2222 - 副本\2222\Release\2222.tlog\
     文件         209  2017-07-26 15:42  2222 - 副本\2222\Release\2222.tlog\2222.lastbuildstate
     文件         534  2017-07-26 15:42  2222 - 副本\2222\Release\2222.tlog\2222.write.1u.tlog
     文件       52144  2017-07-26 15:42  2222 - 副本\2222\Release\2222.tlog\CL.read.1.tlog
     文件        1688  2017-07-26 15:42  2222 - 副本\2222\Release\2222.tlog\CL.write.1.tlog
     文件        1866  2017-07-26 15:42  2222 - 副本\2222\Release\2222.tlog\cl.command.1.tlog
     文件        1936  2017-07-26 15:42  2222 - 副本\2222\Release\2222.tlog\link.command.1.tlog
     文件        4698  2017-07-26 15:42  2222 - 副本\2222\Release\2222.tlog\link.read.1.tlog
............此处省略65个文件信息

评论

共有 条评论