从全功能免费 SDK 到源码授权,覆盖技术验证、项目集成、深度定制全流程
NMS+Agent 双端全功能,含预编译 bin 样例,可二次开发验证业务
无发包限制,.so / .dll 动态库 + 头文件 + 样例,上层语言快速集成
完整可编译源码,永久商业授权,适合深度定制
解决国产化、跨平台、安全合规、集成成本与工具链问题,专为国内中小企业设计
协议栈核心算法与加密模块完全自主研发,无国外开源依赖,源码可审计,满足信创自主可控要求。
管理端与设备端共用同一套类型定义、日志与许可模块,一套团队维护,联调成本低,三层统一管控。
预编译动态库交付,C/C++ 直接链接,Python/Java/C# 通过 ctypes/JNA/P-Invoke 调用,无需编译 C 源码。
完整实现 RFC3411/3414 USM,支持 MD5/SHA1/SHA256 认证,DES/3DES/AES-128/192/256 加密,可扩展国密。
传输层统一抽象,#ifdef 精准隔离 Linux/STM32/RISC-V,支持裸机与 RTOS,内存占用可控,Windows 同样完备。
授权后获取完整源码、示例与文档,可自定义 OID/MIB、传输协议与日志输出,签署 NDA 永久商业授权。
配套 NMS/Agent 双侧 CLI 命令行、SNMP-Web 网桥(HTTP/JSON API)、完整 Demo 源码,零代码即可验证功能,参考实现快速落地业务。
不需要 C 编译器、不需要交叉工具链、不需要读懂协议栈源码——拿到动态库就能调用
动态库预编译好,上层语言直接加载调用
C/C++、Python、Java、C#、Go 等通过 FFI 调用
NMS 侧和 Agent 侧同一套 API 风格,学习成本低
SDK 不止是库文件,更附带完整可运行的工具与样例,客户可直接试用或参考实现自己的业务
命令行工具支持 GET/SET/GETNEXT/BULKWALK 查询、TRAP/INFORM 监听,v1/v2c/v3 全协议。无需写代码,命令行即可验证设备连通性与协议兼容性,适合运维调试与自动化脚本集成。
HTTP 代理网桥把 SNMP 操作封装为 RESTful JSON API(端口 8099),Web 前端、Python/Java 后端通过 HTTP 即可调用 SNMP,动态加载 .so/.dll,无需理解 C 接口。可快速搭建 Web 管理后台。
NMS 侧 API 调用样例、Agent 侧完整应用演示(含 MIB 注册、用户回调、INI 配置管理)、预编译 Windows exe。客户可直接参考源码实现自己的业务逻辑,大幅缩短开发周期。
简洁的 C API 设计,配套完整样例,开发者一看就懂、一用就会
// 引入 NMS SDK 头文件 #include "nms_snmp_api.h" int main() { // 1. 初始化 SDK api_snmp_init(); // 2. 创建 Agent 连接(v2c / public) ApiSnmpAgentConfig cfg = {.version = API_SNMP_VERSION_2C}; strcpy(cfg.community, "public"); api_snmp_agent_create("192.168.1.10", 161, &cfg); // 3. 构造 VarBind 并发送 GET(异步回调接收结果) ApiSnmpVarBind vb; api_snmp_create_get_varbind("1.3.6.1.2.1.1.1.0", &vb); api_snmp_get("192.168.1.10", 161, NULL, &vb, 1, 2000, NULL); return 0; }
// 引入 Agent SDK 头文件 #include "snmp_agent_api.h" #include <string.h> // 自定义只读节点回调:读取设备温度 AgentSnmpError read_temp(const char* oid, AgentSnmpVarBind* out, void* arg) { out->type = AGENT_SNMP_BER_INTEGER; out->value.int_val = hardware_get_temp(); // 对接真实硬件 out->value_len = sizeof(int32); return AGENT_SNMP_ERR_SUCCESS; } int main() { // 1. 初始化 Agent SDK(端口、community、引擎ID) ApiSnmpConfig cfg = {0}; strcpy(cfg.ro_community, "public"); strcpy(cfg.rw_community, "private"); cfg.snmp_listen_port = 161; agent_snmp_init(&cfg); // 2. 注册自定义 MIB 节点(OID、权限、读回调、采集周期) agent_snmp_mib_register("1.3.6.1.4.1.12345.1.1.0", AGENT_MIB_READ_ONLY, read_temp, NULL, 1000, NULL); // 3. 启动监听 + 主循环调度 agent_snmp_start(); while (1) { agent_snmp_loop(); // 报文收发、超时回收 } return 0; }
; agent_config.ini — Agent 配置文件(无需重新编译) [snmp_agent] listen_port = 161 ro_community = public rw_community = private enable_v1 = 1 enable_v2c = 1 enable_v3 = 1 [snmp_v3] username = admin auth_proto = SHA auth_pass = auth123456 priv_proto = AES priv_pass = priv123456 engine_id = 80001F8800000001 [system] contact = admin@example.com location = Server Room A
以上为简化示例,完整可编译代码见 SDK 包内 demo/ 目录(NMS API Demo + Agent AppDemo + CLI + Web 网桥源码)
快速找到适合您项目的版本,详细对比与下载入口请前往下载中心
关于产品形态与集成方式的高频疑问
agent_snmp_trap_custom() 和 agent_snmp_inform_custom() 主动向 NMS 上报告警,支持自定义 OID 和告警内容;NMS 侧通过 api_snmp_start_trap_listener() 监听端口并注册回调接收告警。Inform 支持应答确认,确保告警可靠送达。agent_snmp_mib_register(oid, perm, read_cb, write_cb, poll_ms, user_data) 一行代码即可注册自定义 OID,支持只读/读写权限、定时采集周期和用户私有参数。NMS 侧可直接对任意 OID 发起 GET/SET 操作。也可通过 INI 配置文件方式管理 Agent 配置(端口、community、v3 用户、引擎 ID),无需改代码。