Windows snmp++获取本地主机信息

2024-05-14 22:44

本文主要是介绍Windows snmp++获取本地主机信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

编译snmp++的包

调用snmp++.lib实现信息获取_哔哩哔哩_bilibili

代码:

#include <iostream>
#include <libsnmp.h>
#include <vector>
#include <fstream>
#include <string>
#include "snmp_pp/snmp_pp.h"
//#define _NO_LOGGING
#ifdef WIN32
#define strcasecmp _stricmp
#endif#ifdef SNMP_PP_NAMESPACE
using namespace Snmp_pp;
#endifusing namespace std;
using namespace Snmp_pp;
typedef struct {string aa;string bb;string cc;
}CON;
vector<CON> readTxt(string path) {vector<CON> res;ifstream file(path);string line;CON a;getline(file, line);line = line.substr(line.find('=') + 1);a.aa = line;while (getline(file,line)){line= line.substr(line.find('=') + 1);a.bb = line;getline(file, line);line = line.substr(line.find('=') + 1);a.cc = line;res.push_back(a);}return res;
}
vector<string> getSnmpValue(vector<CON> a) {vector<string> res;int status;Snmp::socket_startup(); // Initialize the socket subsystem// Create an SNMP++ sessionSnmp snmp(status);if (status != SNMP_CLASS_SUCCESS){cout << "SNMP++ Session creation failed." << endl;return vector<string>();}for (int i = 0; i < a.size(); i++){// Set the target addressUdpAddress targetAddress(a[i].bb.c_str());// Create the target using the target address and community stringCTarget target(targetAddress);target.set_version(version2c); // Use SNMPv2ctarget.set_retry(3);           // Set the number of retriestarget.set_timeout(1000);      // Set the timeout (milliseconds)target.set_readcommunity(a[i].aa.c_str());// Create a PDU object for the SNMP GET requestPdu pdu;pdu.set_type(sNMP_PDU_GET);pdu += Vb(a[i].cc.c_str()); // Add the OID to retrieve// Send the SNMP GET requeststatus = snmp.get(pdu, target);if (status == SNMP_CLASS_SUCCESS){// Check the response PDU for errorsif (pdu.get_error_status() == SNMP_ERROR_SUCCESS){// Iterate through the received variable bindingsfor (int i = 0; i < pdu.get_vb_count(); i++){Vb vb;pdu.get_vb(vb, i);std::string value = vb.get_printable_value();res.push_back(value);  // 将值添加到容器中//cout << "OID: " << vb.get_printable_oid() << endl;//cout << "Value: " << vb.get_printable_value() << endl;}}else{cout << "Error in response PDU: " << endl;}}else{cout << "SNMP++ GET request failed: " << snmp.error_msg(status) << endl;}}Snmp::socket_cleanup(); // Shut down the socket subsystemreturn res;
}
int main()
{string p = "D:\\ALearn\\snmp\\testSnmpJJ\\1.txt";vector<CON> a = readTxt(p);/*for (int i = 0; i < a.size(); i++){cout << a[i].aa << endl;cout << a[i].bb << endl;cout << a[i].cc << endl;}*/vector<string> b = getSnmpValue(a);for (int i = 0; i < b.size(); i++){cout <<"value===="<< b[i] << endl;}return 0;
}

配置文件:

 

运行截图:(一定要运行snmp服务)

这篇关于Windows snmp++获取本地主机信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/990062

相关文章

Windows下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

使用Python实现获取屏幕像素颜色值

《使用Python实现获取屏幕像素颜色值》这篇文章主要为大家详细介绍了如何使用Python实现获取屏幕像素颜色值,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、一个小工具,按住F10键,颜色值会跟着显示。完整代码import tkinter as tkimport pyau

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.