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

相关文章

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

一文教你使用Python实现本地分页

《一文教你使用Python实现本地分页》这篇文章主要为大家详细介绍了Python如何实现本地分页的算法,主要针对二级数据结构,文中的示例代码简洁易懂,有需要的小伙伴可以了解下... 在项目开发的过程中,遇到分页的第一页就展示大量的数据,导致前端列表加载展示的速度慢,所以需要在本地加入分页处理,把所有数据先放

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus