import java.io.*; public class DataFetcher{ private long interval; private final boolean LOG = false; private JTelnet jtelnet; private SnmpGetKeyVar snmp; private final String ROUTER_IP = "192.168.1.1"; private final int PORT = 161; private final String COMMUNITY = "public"; // udp-in; udp-noports; icmp-inEchos; icmp-inechoReps; ip-ReasmFails private final String OIDS[] = {"7.1.0", "7.2.0", "5.8.0", "5.9.0", "4.16.0"}; private SnmpData[] snmp_tmpbuf; private int snmp_ptr; private IfTrafficData[] secBuffer; //readin every 2 sec private IfTrafficData[] minBuffer; //readin every min private IfTrafficData[] hrBuffer; // readin every hour private int secPtr = 0; private int minPtr = 0; private int hrPtr = 0; private boolean flag = false; private IfTrafficData[] idf_tmpbuf; private int buf_ptr; private double tmp; long T1, T2; public DataFetcher(long interval) { this.interval = interval; jtelnet = new JTelnet(); int i = jtelnet.initialize("\r\n", "\r\n"); snmp = new SnmpGetKeyVar(ROUTER_IP, PORT, COMMUNITY, OIDS); snmp.init(); if(LOG) { secBuffer = new IfTrafficData[60]; minBuffer = new IfTrafficData[60]; hrBuffer = new IfTrafficData[24]; secPtr = 0; minPtr = 0; hrPtr = 0; flag = false; } else { clearTempBuffer(); } } public SnmpData getSNMPData() { SnmpData sr, dif; sr = snmp.snmpGet(); snmp_tmpbuf[snmp_ptr] = sr; if(snmp_tmpbuf[1-snmp_ptr]!=null) { dif = subSNMP(snmp_tmpbuf[snmp_ptr], snmp_tmpbuf[1-snmp_ptr]); snmp_ptr = 1 - snmp_ptr; return dif; } snmp_ptr = 1 - snmp_ptr; return null; } public SnmpData subSNMP(SnmpData cur, SnmpData old) { SnmpData sub = new SnmpData(); for(int i=0; i