Resolve dateandtime type of SNMP

From , 5 Years ago, written in Java, viewed 227 times.
URL https://pastebin.vip/view/b7ee6f5f
  1. import java.util.Vector;
  2.  
  3. import org.apache.log4j.Logger;
  4. import org.snmp4j.CommandResponderEvent;
  5. import org.snmp4j.PDU;
  6. import org.snmp4j.smi.OctetString;
  7. import org.snmp4j.smi.Variable;
  8. import org.snmp4j.smi.VariableBinding;
  9.  
  10. import com.asb.mediation.snmp.SNMPManager;
  11. import com.asb.mediation.util.INMSLog;
  12.  
  13.  
  14. public class SNMPAdapter  extends SNMPManager {
  15.     private Logger adapterlog = INMSLog.getInstance().getAdapterLog();
  16.     private Logger recvlog = INMSLog.getInstance().getReceiveLog();
  17.  
  18.     public SNMPAdapter (String snmpIP, String snmpPort) {
  19.         super (snmpIP, snmpPort);
  20.     }
  21.  
  22.     @Override
  23.     protected void notifyMsg (CommandResponderEvent event) {
  24.         adapterlog.info ("Mapper::notifyMsg>>    =====NOTIFY_ALARM=====");
  25.  
  26.         PDU pdu = event.getPDU();
  27.         Vector vec = pdu.getVariableBindings();
  28.         adapterlog.info ("YYWifiMapper::process>>    oid size = " + vec.size() );
  29.  
  30.         for (int i = 0; i < vec.size(); i++) {
  31.             String oidNameValue = "";
  32.             VariableBinding vb = (VariableBinding) vec.get (i);
  33.             if (vb.getVariable() instanceof OctetString) {
  34.                 String value = new String ( ( (OctetString) vb.getVariable() ).getValue() );
  35.  
  36.                 if (vb.getOid().toString().trim().equals ("1.3.6.1.4.1.88888.2") ) {
  37.                     oidNameValue = "OID:" + vb.getOid() + "\t" + "value:" + parseDateAndTime (vb.getVariable() );
  38.                 } else {
  39.                     oidNameValue = "OID:" + vb.getOid() + "\t" + "value:" + value.trim();
  40.                 }
  41.             } else {
  42.                 //略
  43.             }
  44.         }
  45.  
  46.     }
  47.  
  48.     public String parseDateAndTime (Variable v) {
  49.         adapterlog.info ("YYWifiMapper::parseDateAndTime>>    v=" + v);
  50.         //        adapterlog.info("YYWifiMapper::parseDateAndTime>>    v string="+v.toString());
  51.  
  52.         OctetString oct = (OctetString) v;
  53.         //        adapterlog.info("YYWifiMapper::parseDateAndTime>>    v hex="+ oct.toHexString());
  54.  
  55.         byte[] bts = oct.getValue();
  56.  
  57.         byte[] format_str = new byte[128];   //保存格式化过后的时间字符串
  58.         int year;
  59.         int month;
  60.         int day;
  61.         int hour;
  62.         int minute;
  63.         int second;
  64.         int msecond;
  65.  
  66.         //        for(byte b:bts){
  67.         //            adapterlog.info("YYWifiMapper::parseDateAndTime>>    bts:"+b);
  68.         //        }
  69.         year = bts[0] * 256 + 256 + bts[1]; //adapterlog.info("YYWifiMapper::parseDateAndTime>>    year:"+year);
  70.  
  71.         month = bts[2];
  72.         day = bts[3];
  73.         hour = bts[4];
  74.         minute = bts[5];
  75.         second = bts[6];
  76.         msecond = bts[7];
  77.         //以下为格式化字符串
  78.         int index = 3;
  79.         int temp = year;
  80.         for (; index >= 0; index--) {
  81.             format_str[index] = (byte) (48 + (temp - temp / 10 * 10) );
  82.             temp /= 10;
  83.         }
  84.  
  85.         format_str[4] = '-';
  86.         index = 6;
  87.         temp = month;
  88.         for (; index >= 5; index--) {
  89.             format_str[index] = (byte) (48 + (temp - temp / 10 * 10) );
  90.             temp /= 10;
  91.         }
  92.  
  93.         format_str[7] = '-';
  94.         index = 9;
  95.         temp = day;
  96.         for (; index >= 8; index--) {
  97.             format_str[index] = (byte) (48 + (temp - temp / 10 * 10) );
  98.             temp /= 10;
  99.         }
  100.  
  101.         format_str[10] = ' ';
  102.         index = 12;
  103.         temp = hour;
  104.         for (; index >= 11; index--) {
  105.             format_str[index] = (byte) (48 + (temp - temp / 10 * 10) );
  106.             temp /= 10;
  107.         }
  108.  
  109.         format_str[13] = ':';
  110.         index = 15;
  111.         temp = minute;
  112.         for (; index >= 14; index--) {
  113.             format_str[index] = (byte) (48 + (temp - temp / 10 * 10) );
  114.             temp /= 10;
  115.         }
  116.  
  117.         format_str[16] = ':';
  118.         index = 18;
  119.         temp = second;
  120.         for (; index >= 17; index--) {
  121.             format_str[index] = (byte) (48 + (temp - temp / 10 * 10) );
  122.             temp /= 10;
  123.         }
  124.  
  125.  
  126.         //        format_str[19]='.';
  127.         //        index=21;
  128.         //        temp=msecond;
  129.         //        for(; index>=20; index--){
  130.         //            format_str[index]=(byte)(48+(temp-temp/10*10));
  131.         //            temp/=10;
  132.         //        }
  133.         //
  134.         //        format_str[22]=0;
  135.         //        adapterlog.info("YYWifiMapper::parseDateAndTime>>    format_str = " + new String(format_str));
  136.  
  137.         return new String (format_str);
  138.     }
  139. }

Reply to "Resolve dateandtime type of SNMP"

Here you can reply to the paste above

captcha

https://burned.cc - Burn After Reading Website