?? dot1dtpfdbtable.java
字號:
package com.sitech.net.topo.table;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.Vector;
import org.snmp4j.smi.VariableBinding;
import sitech.www.frame.jdbc.SqlInsert;
import com.sitech.net.topo.CommSnmpGet;
public class Dot1dTpFdbTable {
public static final String ROOT_OID = "1.3.6.1.2.1.17.4.3.1.1";
public static final int ATTRIBCOUNT = 3;
private String ID;
private String IP;
Vector rowVector = new Vector();
private void addRow(Dot1dTpFdbTableRow row) {
rowVector.add(row);
}
public void FillTable(String ip, int port, String community, String id) {
this.IP = ip;
this.ID = id;
CommSnmpGet snmpGet = new CommSnmpGet(ip, port, community);
snmpGet.init();
snmpGet.setRootOid(ROOT_OID);
try {
snmpGet.workTable(ROOT_OID);
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("[IP: " + IP + " 采集Dot1dTpFdbTable失敗]");
}
HashMap hm = snmpGet.getWalkHashMap();
Set set = hm.keySet();
Iterator it = set.iterator();
while (it.hasNext()) {
String key = (String) it.next();
String value = (String) hm.get(key);
// 填充Address
Dot1dTpFdbTableRow row = new Dot1dTpFdbTableRow();
row.setRowIndex(key);
row.setDot1dTpFdbAddress(value);
this.addRow(row);
}
try {
for (int i = 0; i < rowVector.size(); i++) {
Dot1dTpFdbTableRow row = (Dot1dTpFdbTableRow) rowVector
.elementAt(i);
String rowIndex = row.getRowIndex();
Vector oidsVector = getOtherOids(rowIndex, ATTRIBCOUNT);
Vector resultVector = snmpGet.getPDU(oidsVector);
for (int j = 0; j < resultVector.size(); j++) {
VariableBinding vb = (VariableBinding) resultVector.get(j);
String oid = vb.getOid().toString();
String var = vb.getVariable().toString();
if (oid.startsWith("1.3.6.1.2.1.17.4.3.1.2.")) {
row.setDot1dTpFdbPort(var);
} else if (oid.startsWith("1.3.6.1.2.1.17.4.3.1.3.")) {
row.setDot1dTpFdbStatus(var);
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("[IP: " + IP + " 采集Dot1dTpFdbTable失敗]");
}
snmpGet.release();
System.out.println("[IP: " + IP + " Dot1dTpFdbTable采集完畢]");
}
public void saveToDB() {
System.out.println("[NodeID: " + ID + " IpAddress: " + IP
+ " Dot1dTpFdbTable信息記錄" + rowVector.size() + "條]");
for (int i = 0; i < rowVector.size(); i++) {
Dot1dTpFdbTableRow row = (Dot1dTpFdbTableRow) rowVector.get(i);
String fdbAddress = row.getDot1dTpFdbAddress();
String fdbProt = row.getDot1dTpFdbPort();
String fdbStatus = row.getDot1dTpFdbStatus();
String insert_sql = "insert into tb_topo_dot1dtpfdbtable (nodeid,fdbaddr,fdbport,fdbstatus) values ('"
+ ID
+ "','"
+ fdbAddress
+ "','"
+ fdbProt
+ "','"
+ fdbStatus + "')";
SqlInsert.insert(insert_sql);
}
System.out.println("[NodeID: " + ID + " IpAddress: " + IP
+ " Dot1dTpFdbTable入庫完畢]");
}
private Vector getOtherOids(String rowIndex, int attribCount) {
Vector vector = new Vector();
for (int i = 2; i <= attribCount; i++) {
String oid = releaseRootOidLast(ROOT_OID, rowIndex, i);
vector.add(oid);
}
return vector;
}
private String releaseRootOidLast(String rootOid, String rowIndex, int int_i) {
String result = "";
String rowIndexLast = rowIndex.substring(rootOid.length(), rowIndex
.length());
String rootOidStart = rootOid.substring(0, rootOid.length() - 1);
result = rootOidStart + int_i + rowIndexLast;
return result;
}
public Vector getRrows() {
return rowVector;
}
public static void main(String args[]) {
// A1E27737-A280-A9E9-6192-8A44DA8B3366
// 130.30.2.8
// 53A5847A-546D-9FF1-9CE2-A2CF99B11760
// 130.30.2.3
// E87233DA-0E07-267E-75E8-DC6137930F04
// 130.30.2.6
// 8073F450-573D-8D4F-9D75-DFABB6D06668
// 130.30.15.253
// 73FEDCB3-2B88-A30D-E82E-A86FD131C617
// 130.30.15.252
// 5154CDE7-CB4F-DA7E-B36B-6BBC64E7E26B
// 130.30.2.1
String ip = "130.30.2.6";
Dot1dTpFdbTable fdbTable = new Dot1dTpFdbTable();
fdbTable.FillTable(ip, 161, "ahnms2008",
"E87233DA-0E07-267E-75E8-DC6137930F04");
// fdbTable.saveToDB();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -