我正在使用SharpSnmp库的ListenerBinding来接收snmp-get-requests。 以下方法处理传入的请求并评估请求的id:
private void HandleSnmpRequest(object sender, MessageReceivedEventArgs e)
{
if (e.Message is GetRequestMessage getRequest){
var messageId = e.Message.Variables().First().Id;
...
}
.....
}
只要传入请求具有版本1或2,一切都很好。
如果请求具有版本3,则e.Message.Variables()
将返回空集合。
为什么“变量”集合中没有请求的ID?
答案 0 :(得分:0)
您获得的v3请求是发现消息,当然不包含您要查找的OID。
听起来您对SNMP v3了解不多,所以我建议您在继续之前找到一本书并学习这些概念。
与此同时,处理传入的请求必须遵循我在this article中记录的管道模式。