当我使用 snmp-walk 或 snmp-get 等工具查询返回类型为 MacAddress 的 OID 时,它总是将数据解析为 HexString 并正确显示。即使他们没有加载 MIB,它仍然可以工作。
bash#snmpwalk -v 2c -c public 10.1.2.3 1.3.6.1.4.1.14179.2.2.1.1
SNMPv2-SMI::enterprises.14179.2.2.1.1.1.16.189.24.206.212.64 = Hex-STRING: 10 BD 18 CE D4 40
SNMPv2-SMI::enterprises.14179.2.2.1.1.1.100.233.80.151.114.192 = Hex-STRING: 64 E9 50 97 72 C0
但是,我似乎无法从Lextm.SharpSnmpLib (11.2.0)
. MacAddress 的数据类型未正确解码,将其转换为正确的 MAC 是一个手动过程。
public void WalkTable()
{
const string baseOid = "1.3.6.1.4.1.14179.2.2.1.1"; //The entire table
const string community = "public";
var ep = new IPEndPoint(IPAddress.Parse("10.1.2.3"), 161);
var results = new List<Variable>();
Messenger.Walk(VersionCode.V2, ep, new OctetString(community), new ObjectIdentifier(baseOid), results, 60000, WalkMode.WithinSubtree);
foreach(var v in results)
Console.WriteLine(v.Data.ToString());
}
我做错了什么还是这就是图书馆的工作方式?