SNMPv2 和 SNMPv3 的 Sharpsnmp API 差异



我将使用 shrarpsnmp 库为 SNMPv2 设备开发管理器。 我不明白我应该使用那种 API。例如,我想调用 snmp 获取对设备的请求。 存在两种方法来实现此目的:

1(

GetRequestMessage request = new GetRequestMessage(VersionCode.V2,         
Messenger.NextMessageId, Messenger.NextRequestId, new OctetString("myname"), 
new List<variable>{new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.1.0"))}, 
priv, Messenger.MaxMessageSize, report);
ISnmpMessage reply = request.GetResponse(60000, new 
IPEndPoint(IPAddress.Parse("192.168.1.2"), 161));
if (reply.Pdu().ErrorStatus.ToInt32() != 0) // != ErrorCode.NoError
{
throw ErrorException.Create(
"error in response",
IPAddress.Parse("192.168.1.2"),
reply);
}

2(

var result = Messenger.Get(VersionCode.V2,
new IPEndPoint(IPAddress.Parse("192.168.1.2"), 161),
new OctetString("public"),
new List<Variable>{new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.1.0"))},
60000);

这两种方法有什么区别? 哪个可以正确使用 SNMPv2,或者可以使用?

根据开发者网站,Messenger.Get已经过时。

https://help.sharpsnmp.com/html/M_Lextm_SharpSnmpLib_Messaging_Messenger_Get.htm

以及有关获取请求消息的一些信息

https://help.sharpsnmp.com/html/T_Lextm_SharpSnmpLib_Messaging_GetRequestMessage.htm

var result = Messenger.Get(VersionCode.V1,
new IPEndPoint(IPAddress.Parse("192.168.1.2"), 161),
new OctetString("public"),
new List<Variable>{new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.1.0"))},
60000);

此请求适用于 V1 和 V2。因为身份验证和隐私不适用于 V1 和 V2。因此,将此方法用于 V1 和 V2。

var auth = new SHA1AuthenticationProvider(new OctetString("myauthenticationpassword"));
var priv = new DESPrivacyProvider(new OctetString("myprivacypassword"), auth);
GetRequestMessage request = new GetRequestMessage(VersionCode.V3, Messenger.NextMessageId, Messenger.NextRequestId, new OctetString("myname"), new List<variable>{new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.1.0"))}, priv, Messenger.MaxMessageSize, report);
ISnmpMessage reply = request.GetResponse(60000, new IPEndPoint(IPAddress.Parse("192.168.1.2"), 161));

在这里,您可以看到在 Get 方法中传递了身份验证和隐私,因为我们是 V3 的请求,因此需要身份验证和隐私。 您可以将其用于 V1 和 V2,但这没有意义,因为 V1 和 V2 不需要身份验证和隐私。

有关详细信息,请参阅此处,哪些是 V3 中添加的新功能。

最新更新