/** * Create and initialize an SNMP v1 trap PDU. * * @param genericTrap * The generic trap number * @param specificTrap * The specific trap value from your MIB definition * @param enterpriseOid * The IANA enterprise OID to use. * @param timeTicks * The time ticks value as a long * @return The initialized v1 trap PDU ready to have the variable bindings * added */ public PDUv1 createTrapV1(int genericTrap, int specificTrap, String enterpriseOid, long timeTicks) { if (genericTrap < PDUv1.COLDSTART || genericTrap > PDUv1.ENTERPRISE_SPECIFIC) { throw new IllegalArgumentException("The genericTrap must be >= 0 and <= 6"); } PDUv1 pdu= new PDUv1(); pdu.setType(PDU.V1TRAP); pdu.setAgentAddress(address); pdu.setEnterprise(new OID(enterpriseOid)); pdu.setGenericTrap(genericTrap); pdu.setSpecificTrap(specificTrap); pdu.setTimestamp(timeTicks); return pdu; }
/** * @return The {@link InetAddress} of the agent that generated the trap * as found in the SNMPv1 AgentAddress field. This can vary from the value * of {@link #getAgentAddress()} if the SNMPv1 trap has been forwarded. */ @Override public InetAddress getTrapAddress() { return m_pdu.getAgentAddress().getInetAddress(); }
@Override public TrapIdentity getTrapIdentity() { return new TrapIdentity(SnmpObjId.get(m_pdu.getEnterprise().getValue()), m_pdu.getGenericTrap(), m_pdu.getSpecificTrap()); }
PDUv1 pdu1 = new PDUv1(); transMap.listen(); pdu1.setGenericTrap( 6 ); pdu1.setSpecificTrap( PDUv1.ENTERPRISE_SPECIFIC ); pdu1.setEnterprise( new OID( Oid ) ); pdu1.add( new VariableBinding( new OID( Oid ), new OctetString( messageString ) ) );
target.setType(PDU.NOTIFICATION); target.add(new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(sourceV1.getTimestamp()))); target.add(new VariableBinding(SnmpConstants.snmpTrapOID, SnmpConstants.getTrapOID( sourceV1.getEnterprise(), sourceV1.getGenericTrap(), sourceV1.getSpecificTrap()))); target.addAll(source.toArray()); target.add(new VariableBinding(SnmpConstants.snmpTrapAddress, sourceV1.getAgentAddress())); target.add(new VariableBinding(SnmpConstants.snmpTrapEnterprise, sourceV1.getEnterprise())); OctetString community = new OctetString(request.getCommandEvent().getSecurityName()); targetV1.setGenericTrap(6); if ((trapOID.size() > 2) && (trapOID.get(trapOID.size() - 2) == 0)) { targetV1.setSpecificTrap(trapOID.get(trapOID.size() - 1)); OID enterprise = new OID(trapOID); enterprise.trim(2); targetV1.setEnterprise(enterprise); targetV1.setSpecificTrap(trapOID.get(trapOID.size() - 1)); OID enterprise = new OID(trapOID); enterprise.trim(1); targetV1.setEnterprise(enterprise); targetV1.setGenericTrap(genericID);
private void parseV1(PDUv1 pdu) { // parse headers valueMap.put(ENTERPRISE, pdu.getEnterprise().toString()); valueMap.put(AGENT_ADDR, pdu.getAgentAddress()); valueMap.put(GENERIC_TRAP, pdu.getGenericTrap()); valueMap.put(SPECIFIC_TRAP, pdu.getSpecificTrap()); valueMap.put(TIME_STAMP, pdu.getTimestamp()); OID trapOid = SnmpConstants.getTrapOID(pdu.getEnterprise(), pdu .getGenericTrap(), pdu.getSpecificTrap()); valueMap.put(TRAP_OID, trapOid.toString()); // parse variable bindings Vector vbs = pdu.getVariableBindings(); for (Iterator it = vbs.iterator(); it.hasNext();) { VariableBinding vb = (VariableBinding) it.next(); OID oid = vb.getOid(); Variable var = vb.getVariable(); valueMap.put(oid.toString(), ((OID) var).getValue()); } }
PDUv1 trapPdu = new PDUv1(); trapPdu.setTimestamp(this.clock.uptime()); trapPdu.setType(PDU.V1TRAP); trapPdu.setGenericTrap(m.getGeneric()); trapPdu.setSpecificTrap(m.getSpecific()); trapPdu.setEnterprise(new OID(m.getEnterprise())); trapPdu.add(new VariableBinding(oid, var)); trapPdu.add( this.snmpVBFactory.make(vb.getOid(), wrapper.get(vb.getTag()))); trapPdu.add( this.snmpVBFactory.make(vb.getOid(), wrapper.get(vb.getTag())));
protected Snmp4JV1TrapBuilder(Snmp4JStrategy strategy) { super(strategy, new PDUv1(), PDUv1.V1TRAP); }
target.setVersion(SnmpConstants.version2c); PDUv1 pdu = new PDUv1(); pdu.setType(PDU.TRAP); vb.setOid(trap); vb.setVariable(new OctetString("1.3.6.1.4.1.9.9.46.2.0.11"));//11,10 pdu.add(vb); vb2.setOid(new OID("1.3.6.1.4.1.9.9.46.1.3.1.1.4.1.80")); vb2.setVariable(new OctetString("VLAN0080")); pdu.add(vb2);
@Override public void setSpecific(int specific) { getPDUv1().setSpecificTrap(specific); }
@Override public void setEnterprise(SnmpObjId enterpriseId) { getPDUv1().setEnterprise(new OID(enterpriseId.getIds())); }
@Override public void setGeneric(int generic) { getPDUv1().setGenericTrap(generic); }
public void testGetSysName() throws IOException { Snmp snmp = new Snmp(new DefaultUdpTransportMapping()); snmp.listen(); Address addr = new UdpAddress(InetAddress.getLocalHost(), 9161); //Address addr = new UdpAddress(InetAddressUtils.addr("192.168.0.100"), 161); Target target = new CommunityTarget(addr, new OctetString("public")); target.setVersion(SnmpConstants.version1); target.setTimeout(3000); target.setRetries(3); PDUv1 getRequest = new PDUv1(); getRequest.add(new VariableBinding(new OID("1.3.6.1.2.1.1.5.0"))); ResponseEvent e = snmp.get(getRequest, target); PDU response = e.getResponse(); assertEquals(new OctetString("mockhost"), response.get(0).getVariable()); }
@Override public long getTimeStamp() { return m_pdu.getTimestamp(); }
@Override public void setTimeStamp(long timeStamp) { getPDUv1().setTimestamp(timeStamp); }
target.setType(PDU.NOTIFICATION); target.add(new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(sourceV1.getTimestamp()))); target.add(new VariableBinding(SnmpConstants.snmpTrapOID, SnmpConstants.getTrapOID( sourceV1.getEnterprise(), sourceV1.getGenericTrap(), sourceV1.getSpecificTrap()))); target.addAll(source.toArray()); target.add(new VariableBinding(SnmpConstants.snmpTrapAddress, sourceV1.getAgentAddress())); target.add(new VariableBinding(SnmpConstants.snmpTrapEnterprise, sourceV1.getEnterprise())); OctetString community = new OctetString(request.getCommandEvent().getSecurityName()); targetV1.setGenericTrap(6); if ((trapOID.size() > 2) && (trapOID.get(trapOID.size() - 2) == 0)) { targetV1.setSpecificTrap(trapOID.get(trapOID.size() - 1)); OID enterprise = new OID(trapOID); enterprise.trim(2); targetV1.setEnterprise(enterprise); } else if (trapOID.size() > 1) { targetV1.setSpecificTrap(trapOID.get(trapOID.size() - 1)); OID enterprise = new OID(trapOID); enterprise.trim(1); targetV1.setEnterprise(enterprise); targetV1.setGenericTrap(genericID);
private void processPDUv1(PDUv1 pdu) { StringBuffer sbuf = new StringBuffer(); sbuf.append("\nV1 Trap from agent ").append(this.bindAddress.toString()); sbuf.append(" on port ").append(this.port); sbuf.append("\nIP Address......... ").append(pdu.getAgentAddress().toString()); sbuf.append("\nEnterprise Id...... ").append(pdu.getEnterprise()); sbuf.append("\nGeneric ........... ").append(pdu.getGenericTrap()); sbuf.append("\nSpecific .......... ").append(pdu.getSpecificTrap()); sbuf.append("\nTimeStamp ......... ").append(pdu.getTimestamp()); sbuf.append("\n"); Vector bindings = pdu.getVariableBindings(); Iterator it = bindings.iterator(); int counter = 0; while (it.hasNext()) { VariableBinding vb = (VariableBinding)it.next(); if (vb != null) { sbuf.append("Varbind[").append(counter++).append("] := "); sbuf.append(vb.getOid().toString()).append(" --> "); sbuf.append(vb.getVariable().toString()).append("\n"); } } sbuf.append("\nLength............. ").append(counter); log.debug(sbuf.toString()); }
PDUv1 trapPdu = new PDUv1(); trapPdu.setTimestamp(this.clock.uptime()); trapPdu.setType(PDU.V1TRAP); trapPdu.setGenericTrap(m.getGeneric()); trapPdu.setSpecificTrap(m.getSpecific()); trapPdu.setEnterprise(new OID(m.getEnterprise())); trapPdu.add(new VariableBinding(oid, var)); trapPdu.add( this.snmpVBFactory.make(vb.getOid(), wrapper.get(vb.getTag()))); trapPdu.add( this.snmpVBFactory.make(vb.getOid(), wrapper.get(vb.getTag())));
public Object clone() { return new PDUv1(this); }
@Override public void setSpecific(int specific) { getPDUv1().setSpecificTrap(specific); }