2013-01-25 49 views
0

我已经使用SNMP v1和2c通过发送广播消息与社区“公共”的网络发现打印机,它工作得很好,但是当我发送广播消息与协议版本3我有超时错误。SNMPv3发现

有人分享了SNMPv3设备发现的例子吗?

谢谢。

回答

3

两件事情:

1)这样的广播的SNMPv1/V2C实际上没有定义在协议工作。正如你发现的,便宜的实现只会响应任何看到内核接受端口并且不检查地址的数据包。但是,您还会发现一些不会响应广播数据包的实现。所以这实际上并不是一个绝对的发现机制。 (更不用说,许多供应商终于变得聪明,没有公众成为默认社区名称)

2)另一方面,SNMPv3更不可能工作,因为在SNMPv3协议内engineID发现是如何发生的。 SNMPv3无论如何都不会响应正常的响应PDU,因为它应该以REPORT PDU的形式回复“这是我的引擎ID”,并且您必须以该引擎ID 回应正确的USM凭据才能访问设备。

简而言之,SNMPv3是为安全而设计的,并且不再有“公共”等价物。你需要知道如何访问设备,不能只是“猜测”。

+0

+1。该文件在C#中显示了一个示例,https://github.com/lextm/sharpsnmplib/blob/master/SharpSnmpLib/Messaging/Discoverer.cs –

+0

非常感谢。为了您的答案,这真的很有帮助。 – AVG

+0

很高兴能帮到你! –