You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SnmpSharpNet获取SNMP表表头(列名)的C#实现方法咨询

要实现这个需求,核心是将SNMP表列的OID映射到对应的MIB列名——SnmpSharpNet本身不自带MIB解析能力,所以得从两个方向入手:

方法一:手动映射OID与列名(适合固定MIB场景)

如果你的业务只针对特定MIB(比如IF-MIB、IP-MIB),直接手动维护OID前缀到列名的映射表最省事。

以IF-MIB的ifTable为例,代码示例如下:

// 定义OID前缀到列名的映射表
var columnMap = new Dictionary<string, string>
{
    { ".1.3.6.1.2.1.2.2.1.1", "ifIndex" },
    { ".1.3.6.1.2.1.2.2.1.2", "ifDescr" },
    { ".1.3.6.1.2.1.2.2.1.3", "ifType" },
    { ".1.3.6.1.2.1.2.2.1.4", "ifMtu" },
    { ".1.3.6.1.2.1.2.2.1.5", "ifSpeed" }
};

// 假设你已通过SnmpSharpNet获取到表数据,存储在tableRows中
var columnNames = new List<string>();
foreach (var row in tableRows)
{
    foreach (var oidStr in row.Keys)
    {
        // 匹配列OID前缀(表项OID是列前缀+索引,比如.1.3.6.1.2.1.2.2.1.2.1)
        var matchedPrefix = columnMap.Keys.FirstOrDefault(prefix => oidStr.StartsWith(prefix));
        if (matchedPrefix != null && !columnNames.Contains(columnMap[matchedPrefix]))
        {
            columnNames.Add(columnMap[matchedPrefix]);
        }
    }
    break; // 从第一行提取所有列名即可
}

// 输出表头列名
foreach (var name in columnNames)
{
    Console.WriteLine(name);
}

方法二:结合MIB解析库实现通用列名获取

如果需要支持任意MIB,就得用专门的MIB解析库加载MIB文件,解析出表列的OID与名称映射。推荐用SharpSnmpLib的MIB解析模块(MIT许可的.NET库,和SnmpSharpNet兼容)。

步骤与代码示例:

  1. 安装NuGet包:Install-Package SharpSnmpLib
  2. 加载MIB文件并解析表列:
using Lextm.SharpSnmpLib.Mib;

// 加载目标MIB文件(替换为你的MIB文件路径)
var loader = new MibLoader();
var mibModule = loader.Load(@"C:\MIBs\IF-MIB.txt");

// 指定目标表的OID(比如ifTable的OID是.1.3.6.1.2.1.2.2)
var tableOid = new ObjectIdentifier(".1.3.6.1.2.1.2.2");
var table = mibModule.FindNode(tableOid) as TableType;

if (table != null)
{
    // 提取所有列名
    var columnNames = table.Columns.Select(col => col.Name).ToList();
    
    // 输出表头
    foreach (var name in columnNames)
    {
        Console.WriteLine(name);
    }
}

注意事项

  • 确保MIB文件是标准SMI格式,可从IANA或设备厂商官网下载对应MIB。
  • 关联SnmpSharpNet返回的表项时,通过判断OID前缀匹配即可将表项值对应到列名。

内容的提问来源于stack exchange,提问作者Jota

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 07:15:51