SNMPv3不在时间窗口中

时间:2017-09-04 08:43:59

标签: snmp sharp-snmp

我尝试查询Cisco SMB(小型企业交换机)以读取其主机名。

我的代码返回"不在时间窗口(1.3.6.1.6.3.15.1.1.2.0)。

Net-Snmp工作正常。我发现使用wireshark的不同之处在于net-snmp在收到不及时窗口错误后设置了msgAuthorativeEngineTime。

Discovery discovery = Messenger.GetNextDiscovery(SnmpType.GetRequestPdu);
ReportMessage report = discovery.GetResponse(60000, new IPEndPoint(IPAddress.Parse("10.105.9.10"), 161));

OctetString username = new OctetString("test");
var auth = new SHA1AuthenticationProvider(new OctetString("Testtest123!"));
var priv = new DESPrivacyProvider(new OctetString("Testtest123!"), auth);

// read switch hostname
GetRequestMessage request = new GetRequestMessage(VersionCode.V3, Messenger.NextMessageId, Messenger.NextRequestId, username, new List<Variable> { new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.5.0")) }, priv, Messenger.MaxMessageSize, report);
ISnmpMessage reply = request.GetResponse(60000, router); (not in time window)

请查找sharp-snmp:wireshark screenshot of sharp-snmp

的wireshark屏幕截图

net-snmp: enter image description here

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

根据snmpget示例(更新链接here),您必须调用两次GetRequestMessage方法。请注意,代码在第一次调用中使用了 report 变量,然后在后者中使用了 reply 变量,否则它将无法工作(= not in time window 消息)(我浪费了半天时间得到这个!)