/
makhinova
/
ClassSNMP
Обзор
Документация
Войти
/
makhinova
/
ClassSNMP
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
main.cpp
69 строк
2 KB
makhinova
class snmp
09 окт 2025, 09:37
09 окт 2025, 09:37
b412a86
Код
Авторство
О чём код?
#include "snmp.h" #include <iostream> #include <thread> #include <chrono> int main() { SNMP client; SNMPSessionConfig config; config.host = "192.168.2.3"; config.user_name = "KyoRead"; config.auth_password = "4ayw9pwnaXY5KZX"; config.priv_password = "4ayw9pwnaXY5KZX"; config.timeout_ms = 3000; if (!client.ConnectV3(config)) { std::cout << "Connection failed to " << config.host << std::endl; return 1; } std::cout << "Connected to " << config.host << std::endl << std::endl; auto sysname = client.Read("1.3.6.1.2.1.1.5.0"); // sysName auto sysuptime = client.Read("1.3.6.1.2.1.1.3.0"); // sysUpTime auto ifstatus = client.Read("1.3.6.1.2.1.2.2.1.8.1"); // ifOperStatus.1 auto sysdesc = client.Read("1.3.6.1.2.1.1.1.0"); // sysDescr std::cout << "=== SNMP Query Results ===" << std::endl; auto printResult = [](const std::string& label, const SNMPValue& result) { std::cout << label << ": "; if (result.quality == 0) { if (!result.string_value.empty()) { std::cout << result.string_value; } else if (result.type == SNMPValue::Type::INTEGER) { std::cout << result.long_value; } else if (result.type == SNMPValue::Type::TIMETICKS) { unsigned long seconds = result.timeticks_value / 100; unsigned long days = seconds / 86400; unsigned long hours = (seconds % 86400) / 3600; unsigned long minutes = (seconds % 3600) / 60; std::cout << days << "d " << hours << "h " << minutes << "m"; } else { std::cout << "(no data)"; } } else { std::cout << "Error"; } std::cout << std::endl; }; printResult("System Name", sysname); printResult("Uptime", sysuptime); printResult("Interface 1", ifstatus); std::cout << "Description: "; if (sysdesc.quality == 0 && !sysdesc.string_value.empty()) { std::string desc = sysdesc.string_value; if (desc.length() > 60) desc = desc.substr(0, 57) + "..."; std::cout << desc; } else if (sysdesc.quality != 0) { std::cout << "Error"; } else { std::cout << "(empty)"; } std::cout << std::endl; std::cout << "==========================" << std::endl; return 0; }