如何从Java应用程序发送snmpv2陷阱.我试图在snmp4j上做例子,但它没有用.
我花了一些时间,但我终于想出如何使用SNMP4J发送陷阱:希望有帮助..
public static void main(String[] args) throws Exception { // Create PDU PDU trap = new PDU(); trap.setType(PDU.TRAP); OID oid = new OID("1.2.3.4.5"); trap.add(new VariableBinding(SnmpConstants.snmpTrapOID, oid)); trap.add(new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(5000))); // put your uptime here trap.add(new VariableBinding(SnmpConstants.sysDescr, new OctetString("System Description"))); //Add Payload Variable var = new OctetString("some string"); trap.add(new VariableBinding(oid, var)); // Specify receiver Address targetaddress = new UdpAddress("10.101.21.32/162"); CommunityTarget target = new CommunityTarget(); target.setCommunity(new OctetString("public")); target.setVersion(SnmpConstants.version2c); target.setAddress(targetaddress); // Send Snmp snmp = new Snmp(new DefaultUdpTransportMapping()); snmp.send(trap, target, null, null); }
我使用SNMP4J.
这个 javadoc可能会帮助您编写代码.您可以使用Snmp.trap()方法
编辑:
好吧,我现在没有自己的代码,但你可以参考这个.您必须使用Snmp.notify()来发送V2陷阱而不是Snmp.trap(),因为trap()仅支持发送V1陷阱.