首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在第一次发送后几次接收SNMPv3陷阱。[snmp4j-Java]

无法在第一次发送后几次接收SNMPv3陷阱。[snmp4j-Java]
EN

Stack Overflow用户
提问于 2017-03-13 10:22:40
回答 1查看 791关注 0票数 3

从过去几天开始,我一直在努力用Auth和priv短语发送SNMPV3陷阱。问题是:在我收到第一个陷阱SNMPv3与8月-Priv,我不能接收陷阱后,有时(约2分钟)。接收者就像忽略了即将到来的每一个陷阱。

这是我的密码:

Receiver.java

代码语言:javascript
复制
    try {
        // set udpAdress and transportMapping
        final UdpAddress udpAddress = new UdpAddress(162);
        final TransportMapping transportMapping = new          DefaultUdpTransportMapping(udpAddress);

        // Protocole de sécurité +usm +snmp
        this.snmp = new Snmp(new MessageDispatcherImpl(), transportMapping);
        SecurityProtocols.getInstance().addDefaultProtocols();
        final USM usm = new USM(SecurityProtocols.getInstance(),
            new OctetString(MPv3.createLocalEngineID(new OctetString())),
            0);
        SecurityProtocols.getInstance().addPrivacyProtocol(new PrivDES());
        usm.setEngineDiscoveryEnabled(true);

        // Add the MPv
        snmp.getMessageDispatcher().addMessageProcessingModel(new MPv1());
        snmp.getMessageDispatcher().addMessageProcessingModel(new MPv2c());
        snmp.getMessageDispatcher().addMessageProcessingModel(new MPv3(usm));

        // Security model
        SecurityModels.getInstance().addSecurityModel(usm);

        // Add user 
        snmp.getUSM().addUser(new OctetString("v3AuthSHAPrivDESSecName"),
            new UsmUser(new OctetString("v3AuthSHAPrivDESSecName"), AuthMD5.ID,
                new OctetString("v3AuthSHAPrivDESAuthPassword"), PrivDES.ID,
                new OctetString("v3AuthSHAPrivDESPrivPassword")));

        // Launch of the listener
        this.snmp.addCommandResponder(this);
        snmp.listen();`

Sender.java

代码语言:javascript
复制
try {
        // set udpAdress and transportMapping
        Address targetAddress = GenericAddress.parse("udp:" + ipAddress + "/" + port);
        TransportMapping transport = new DefaultUdpTransportMapping();
        Snmp snmp = new Snmp(transport);

        // Protocole de sécurité +usm +snmp
        SecurityProtocols.getInstance().addDefaultProtocols();
        final USM usm = new USM(SecurityProtocols.getInstance(),
            new OctetString(MPv3.createLocalEngineID(new OctetString())),
            0);

        SecurityProtocols.getInstance().addPrivacyProtocol(new PrivDES());
        SecurityModels.getInstance().addSecurityModel(usm);

        transport.listen();

        // Ajout d'un user avec les paramètres de sécurité
        snmp.getUSM().addUser(new OctetString("v3AuthSHAPrivDESSecName"),
            new UsmUser(new OctetString("v3AuthSHAPrivDESSecName"), AuthMD5.ID,
                new OctetString("v3AuthSHAPrivDESAuthPassword"), PrivDES.ID,
                new OctetString("v3AuthSHAPrivDESPrivPassword")));

        // Create Target
        UserTarget target = new UserTarget();
        target.setAddress(targetAddress);
        target.setRetries(1111);
        target.setTimeout(11111500);
        target.setVersion(SnmpConstants.version3);
        target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
        target.setSecurityName(new OctetString("v3AuthSHAPrivDESSecName"));

        // Create PDU 1 for V3
        ScopedPDU pdu = new ScopedPDU();
        pdu.setType(PDU.TRAP);
        pdu.add(new VariableBinding(SnmpConstants.sysUpTime));
        pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID, SnmpConstants.linkDown));
        pdu.add(new VariableBinding(new OID(trapOid), new OctetString("V33333")));
        snmp.send(pdu, target);

        System.out.println("Sending Trap to (IP:Port)=> " + ipAddress + ":" + port);

        snmp.addCommandResponder(new CommandResponder() {
            public void processPdu(CommandResponderEvent arg0) {
                System.out.println(arg0);
            }
        });
        snmp.close();
  • 我使用snmp4j-1.1依赖项。我不知道为什么它会忽略那些在第一次发送后2分钟就会出现的陷阱。 非常感谢朋友们的帮助
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-21 09:35:05

我找到了答案!:D只是将依赖项更改为snmp4j-2。*而且它有效,现在我使用了snmp4j-2.5.0。而且它工作得很好,如果你想使用它,上面的代码就会非常完美。

祝您代码日愉快:-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42761250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档