我有一些困难,得到一个工作骆驼Spring-启动单元测试编写,测试一个简单的SNMP路由。以下是我到目前为止所拥有的:
SnmpRoute.kt
open class SnmpRoute(private val snmpProperties: SnmpProperties, private val repository: IPduEventRepository) : RouteBuilder() {
@Throws(Exception::class)
override fun configure() {
logger.debug("Initialis
实际上,我有一个SNMP陷阱接收器示例代码。但这就像建立了一个UDP套接字,它监听陷阱。我在exe的帮助下通过生成陷阱来手动测试代码。但是现在我必须订阅snmp客户端(打印机),我需要从该客户端接收Trap。谁能帮我写一个订阅代码,以便从监听程序代码中订阅打印机。 snmptraplistener代码: class Program {
static void Main(string[] args) {
// Construct a socket and bind it to the trap manager port 162
Socket socket
我按照创建了一个TrapListener,代码如下所示:
public class SnmpTrapd implements TrapListener {
public static void main(String args[]) {
// instantiate SNMP Trap Receiver bean
SnmpTrapReceiver trapreceiver = new SnmpTrapReceiver();
// set the port in which the trap is received
我有vcenter设备6.7U1,我已经在vcenter上用paessler snmp测试器成功地测试了我的SNMPv3配置,但是最后一步是添加一个陷阱目标。
我面临一个奇怪的问题,这个命令试图为SNMPv3分配一个目标,如下所示:
snmp.set --v3targets=192.168.1.1@161/snmpuser/priv/trap
Error in method: The SNMP v3 target format is invalid. The format to use is: ip-or-hostname[@port]/remote-user/security-level
我正在处理接收snmp并根据NodeJS中的mib文件创建这个陷阱的json对象的应用程序。我已经收到了这个陷阱,并根据本教程使用util.inspect打印了它:
这是代码片段:
trapd.on('trap', function(msg){
result.push(msg);
var now = new Date();
console.log("Trap Received " + now);
console.log(util.inspect(snmp.message.serializer(msg)['pdu']
我不明白如何从代码示例中访问varBinds。我可以打印它,但是如果我想存储它或者传递给方法或类呢? 即使我将它存储在类中,我也不能进一步访问它。 class TrapReceiver
def __init__(self):
# Create SNMP engine with autogenernated engineID and pre-bound
# to socket transport dispatcher
self.snmpEngine = engine.SnmpEngine()
# Transport set
我试图发送一个陷阱作为一个更大的Perl脚本的一部分。我已经将陷阱发送代码复制到另一个文件中,并且正在自行运行它。代码似乎认为陷阱发送成功,但我没有在两台机器上看到运行陷阱侦听器的陷阱。
下面是代码:
#! /usr/local/bin/perl
use strict;
use warnings;
use Net::SNMP;
#messy hardcoding
my $snmp_target = '192.168.129.50';
#my $snmp_target = '10.200.6.105'; # Server running trap listen