国产全自研 · 可替代 Net-SNMP · 面向中小企业

XXLSNMP 国产 SNMP SDK
.so / .dll 动态库,上层语言零编译集成

NMS 管理端 + Agent 设备端双端同源 SDK,完整支持 SNMP v1/v2c/v3。提供预编译 .so(Linux)/ .dll(Windows)动态库,C/C++、Python、Java、C# 等高级语言通过 FFI 即可调用;配套 CLI 命令行、Web 网桥、Demo 样例,零代码即可验证,让中小企业快速拥有自主可控的 SNMP 协议能力。

三种产品形态,按需选择

从全功能免费 SDK 到源码授权,覆盖技术验证、项目集成、深度定制全流程

📦

全功能免费 SDK 套件

NMS+Agent 双端全功能,含预编译 bin 样例,可二次开发验证业务

  • v1/v2c/v3 全协议全功能(GET/SET/TRAP/INFORM)
  • 含预编译 bin 样例,开箱即用,直接对接测试
  • 提供完整 SDK,可二次开发验证客户业务
  • 唯一限制:发包 20w 条,无其他功能限制
  • 觉得好用可购买授权 license 或洽谈合作
📜

源代码授权

完整可编译源码,永久商业授权,适合深度定制

  • v1/v2c 或 v1/v2c/v3 完整源码(含详细注释)
  • 配套接口文档、设计文档、测试样例
  • 永久商业授权,签署 NDA 保密协议
  • 允许客户内部二次开发,禁止二次分发
  • 可获取协议栈底层核心源码(增值服务)

七大核心能力

解决国产化、跨平台、安全合规、集成成本与工具链问题,专为国内中小企业设计

🇨🇳 国产全自研,可替代 Net-SNMP

协议栈核心算法与加密模块完全自主研发,无国外开源依赖,源码可审计,满足信创自主可控要求。

🔗 NMS + Agent 双端同源

管理端与设备端共用同一套类型定义、日志与许可模块,一套团队维护,联调成本低,三层统一管控。

📦 .so / .dll 动态库组件

预编译动态库交付,C/C++ 直接链接,Python/Java/C# 通过 ctypes/JNA/P-Invoke 调用,无需编译 C 源码。

🔐 SNMPv3 全功能安全

完整实现 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 源码,零代码即可验证功能,参考实现快速落地业务。

.so / .dll 动态库:上层语言零编译集成

不需要 C 编译器、不需要交叉工具链、不需要读懂协议栈源码——拿到动态库就能调用

上层应用(您的业务代码) C/C++ · Python · Java · C# · Go · 其他支持 FFI 的语言 ctypes / JNA / P-Invoke / FFI XXLSNMP SDK 动态库 libxxl_snmp.so (Linux) · xxl_snmp.dll (Windows) 预编译 · 头文件(.h) + 调用样例 · 无需编译源码 SNMP 协议栈核心(内置) BER 编解码 · USM 安全 · 密钥派生 · PDU 处理 · TRAP/INFORM 传输层 · UDP / IP · 端口 161 / 162
0
次 C 源码编译

动态库预编译好,上层语言直接加载调用

5+
种语言可集成

C/C++、Python、Java、C#、Go 等通过 FFI 调用

1
套接口双端复用

NMS 侧和 Agent 侧同一套 API 风格,学习成本低

配套工具链:零代码验证,参考实现快速落地

SDK 不止是库文件,更附带完整可运行的工具与样例,客户可直接试用或参考实现自己的业务

💻 NMS / Agent 双侧 CLI

命令行工具支持 GET/SET/GETNEXT/BULKWALK 查询、TRAP/INFORM 监听,v1/v2c/v3 全协议。无需写代码,命令行即可验证设备连通性与协议兼容性,适合运维调试与自动化脚本集成。

🌐 SNMP-Web 网桥

HTTP 代理网桥把 SNMP 操作封装为 RESTful JSON API(端口 8099),Web 前端、Python/Java 后端通过 HTTP 即可调用 SNMP,动态加载 .so/.dll,无需理解 C 接口。可快速搭建 Web 管理后台。

📝 完整 Demo 源码

NMS 侧 API 调用样例、Agent 侧完整应用演示(含 MIB 注册、用户回调、INI 配置管理)、预编译 Windows exe。客户可直接参考源码实现自己的业务逻辑,大幅缩短开发周期。

API 快速上手:5 行代码集成 SNMP

简洁的 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 网桥源码)

🔓

授权开源:可自行修改、定位、优化

SDK 源码完整可读、注释详细,客户可自行定位问题、优化性能、扩展功能,无需依赖厂商。核心协议栈源码可通过增值服务获取,实现极致自主可控。

源码可审计 问题可定位 性能可优化 功能可扩展

版本速览

快速找到适合您项目的版本,详细对比与下载入口请前往下载中心

版本协议支持交付形态适用场景获取
全功能免费 SDK v1 / v2c / v3 全功能 SDK 套件(含 bin 样例) 二次开发验证、技术预研(发包 20w 限制) 免费下载 →
NMS SDK(v1v2) v1 / v2c .so / .dll + 头文件 + 样例 自研网管平台、运维工具集成 授权获取 →
Agent SDK(v1v2) v1 / v2c .so / .dll + 头文件 + 样例 嵌入式设备、网关、工业控制器 授权获取 →
v3 SDK / 源码授权 v1 / v2c / v3 全功能 SDK 或完整源码(NDA) 安全合规项目、深度定制 联系咨询 →

常见问题

关于产品形态与集成方式的高频疑问

XXLSNMP 和 Net-SNMP 有什么区别?+
Net-SNMP 是国外开源项目,以 Agent 守护进程为主,嵌入式适配需要深度裁剪,无官方商业支持。XXLSNMP 是国产全自研 SDK,NMS+Agent 双端同源,原生支持 STM32/RISC-V,提供 .so/.dll 动态库便于上层语言集成,并提供中文商业技术支持与授权开源模式。
我不会 C 语言,能用 Python / Java 调用吗?+
可以。SDK 提供预编译的 .so(Linux)/ .dll(Windows)动态库,Python 通过 ctypes、Java 通过 JNA、C# 通过 P-Invoke 即可直接调用,不需要编译 C 源码,也不需要配置交叉编译工具链。我们提供各语言的调用样例。
支持 SNMPv3 吗?有哪些认证和加密算法?+
支持完整 SNMPv3 USM(RFC3411/3414)。认证算法支持 MD5、SHA1、SHA256、SHA256-FULL;加密算法支持 DES、3DES、AES-128/192/256,并可扩展国密 SM3/SM4 算法。全功能免费 SDK 已包含 v3 全功能,可直接验证。
能在 STM32 等嵌入式设备上运行吗?+
可以。Agent SDK 原生支持 STM32、RISC-V 等嵌入式平台,适配裸机与 FreeRTOS/VxWorks 等 RTOS 环境,内存占用可控。传输层通过统一抽象隔离平台差异,Windows 上可先调试功能,再移植到目标硬件。
SDK 是开源的吗?可以商用吗?+
采用授权开源模式:免费二进制版可自由使用;SDK 开发包和源码包需在公司授权下使用,签署 NDA 后获得永久商业授权,允许内部二次开发,禁止二次分发或转让源码。核心协议栈底层源码可通过增值服务获取。
支持 Trap / Inform 告警吗?如何发送?+
支持完整的 Trap 和 Inform 告警机制。Agent 侧通过 agent_snmp_trap_custom()agent_snmp_inform_custom() 主动向 NMS 上报告警,支持自定义 OID 和告警内容;NMS 侧通过 api_snmp_start_trap_listener() 监听端口并注册回调接收告警。Inform 支持应答确认,确保告警可靠送达。
支持自定义 MIB / OID 吗?注册流程复杂吗?+
支持。Agent 侧通过 agent_snmp_mib_register(oid, perm, read_cb, write_cb, poll_ms, user_data) 一行代码即可注册自定义 OID,支持只读/读写权限、定时采集周期和用户私有参数。NMS 侧可直接对任意 OID 发起 GET/SET 操作。也可通过 INI 配置文件方式管理 Agent 配置(端口、community、v3 用户、引擎 ID),无需改代码。
嵌入式设备资源占用多少?+
Agent SDK 采用轻量化设计,核心协议栈内存占用可控,适配 STM32、RISC-V 等资源受限设备。通过编译选项可裁剪不需要的协议版本和算法,进一步减小体积。具体占用因平台和功能配置而异,可联系获取详细的资源占用测试报告。

立即开始使用 XXLSNMP

免费下载 v1/v2c/v3 全功能试用版,或申请 SDK 授权与源码合作

免费下载试用