Отправьте прерывание v2 в Java

Как я могу отправить прерывания snmpv2 от JAVA-приложения. Я пытался сделать пример на snmp4j, но он не работал.

6
задан Enamul Hassan 21 March 2017 в 18:48
поделиться

3 ответа

Я использую SNMP4J для этого.

Этот javadoc может помочь вам в написании кода. Вы можете использовать Snmp.trap() метод

Edit:

Ну, у меня сейчас нет своего кода, но вы можете обратиться к этому. Вы должны использовать Snmp.notify() для отправки V2 ловушки вместо Snmp.trap(), так как trap() поддерживает только отправку V1 ловушек.

5
ответ дан 8 December 2019 в 03:00
поделиться

Я бы выбрал библиотеку snmp4j http://www.snmp4j.org/ .

import org.snmp4j.*; 
import org.snmp4j.event.*;

...
CommunityTarget target = new CommunityTarget(); 
target.setCommunity(new OctetString("public")); 
target.setAddress(targetAddress); 
target.setVersion(SnmpConstants.version2c); 

PDU request = new PDU(); 
request.setType(PDU.V2TRAP); 
request.setGenericTrap(PDUv2.COLDSTART); 

Snmp snmp = new Snmp(new DefaultUdpTransportMapping()); 
snmp.listen(); 
snmp.sendPDU(request, target, null, listener);
2
ответ дан 8 December 2019 в 03:00
поделиться

Мне потребовалось некоторое время, но я, наконец, понял, как использовать SNMP4J для отправки trap: Надеюсь, это поможет..

  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);                      
}
20
ответ дан 8 December 2019 в 03:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: