📄 netlink.java
字号:
package com.sitech.net.topo.netobj;
import java.util.List;
import sitech.www.frame.jdbc.SqlInsert;
import sitech.www.frame.jdbc.SqlQuery;
import com.sitech.net.topo.util.RandomGUID;
public class NetLink {
public void saveToDB(String nodeid, String ip) {
String sql = "select discover_nodeid from tb_topo_node_info where node_id='"
+ nodeid + "'";
List list = SqlQuery.findList(sql);
String[] item = (String[]) list.get(0);
String discover_nodeid = item[0];
sql = "select * from tb_topo_node_info where discover_nodeid='"
+ discover_nodeid + "' and info_proc_flag='0'";
List list1 = SqlQuery.findList(sql);
// 发现节点下的子节点基本信息已经处理完
if ((!(list1.size() > 0)) && existNode(discover_nodeid)) {
System.out.println("[处理 NodeID: " + discover_nodeid + " 链路信息]");
// 处理发现节点的链路信息
List linkList = SqlQuery
.findList("select node_id from tb_topo_node_info where discover_nodeid='"
+ discover_nodeid + "' and connect_type='4'");
for (int i = 0; i < linkList.size(); i++) {
String[] linkItem = (String[]) linkList.get(i);
String peerNode = linkItem[0];
String sameSubNet = this.subNetSame(discover_nodeid, peerNode);
if (sameSubNet != null) {
// 子网相同,生成链路
this.createNetLink(discover_nodeid, peerNode, sameSubNet);
}
}
System.out.println("[NodeID: " + discover_nodeid + " 链路信息处理完毕]");
}
}
private void createNetLink(String nodeid1, String nodeid2, String subNet) {
RandomGUID linkGUID = new RandomGUID();
String linkID = linkGUID.toString();
String ifIndex1 = "";
String ipaddr1 = "";
String ifIndex2 = "";
String ipaddr2 = "";
String ifdesc1 = "";
String ifphyaddr1 = "";
String ifdesc2 = "";
String ifphyaddr2 = "";
String sql1 = "select subnetid,nexthop from tb_topo_subnet where nodeid = '"
+ nodeid1 + "' and subnetaddr='" + subNet + "'";
List list1 = SqlQuery.findList(sql1);
for (int i = 0; i < list1.size(); i++) {
String[] item1 = (String[]) list1.get(i);
ifIndex1 = item1[0];
ipaddr1 = item1[1];
}
String sql2 = "select subnetid,nexthop from tb_topo_subnet where nodeid = '"
+ nodeid2 + "' and subnetaddr='" + subNet + "'";
List list2 = SqlQuery.findList(sql2);
for (int i = 0; i < list2.size(); i++) {
String[] item2 = (String[]) list2.get(i);
ifIndex2 = item2[0];
ipaddr2 = item2[1];
}
String sql11 = "select ifdesc,ifphyaddr from tb_topo_iftable where nodeid='"
+ nodeid1 + "' and ifindex='" + ifIndex1 + "'";
List list11 = SqlQuery.findList(sql11);
for (int i = 0; i < list11.size(); i++) {
String[] item11 = (String[]) list11.get(i);
ifdesc1 = item11[0];
ifphyaddr1 = item11[1];
}
String sql22 = "select ifdesc,ifphyaddr from tb_topo_iftable where nodeid='"
+ nodeid2 + "' and ifindex='" + ifIndex2 + "'";
List list22 = SqlQuery.findList(sql22);
for (int i = 0; i < list22.size(); i++) {
String[] item22 = (String[]) list22.get(i);
ifdesc2 = item22[0];
ifphyaddr2 = item22[1];
}
System.out.println("[新生成链路 LinkID: " + linkID + " | " + nodeid1
+ " =>> " + nodeid2 + " | " + ipaddr1 + " =>> " + ipaddr2
+ " | SubNet: " + subNet + "]");
String sql_insert = "insert into tb_topo_net_link (linkid,nodeid1,ifindex1,ifdesc1,ipaddr1,macaddr1,nodeid2,ifindex2,ifdesc2,ipaddr2,macaddr2) values ('"
+ linkID
+ "','"
+ nodeid1
+ "','"
+ ifIndex1
+ "','"
+ ifdesc1
+ "','"
+ ipaddr1
+ "','"
+ ifphyaddr1
+ "','"
+ nodeid2
+ "','"
+ ifIndex2
+ "','"
+ ifdesc2
+ "','"
+ ipaddr2
+ "','"
+ ifphyaddr2 + "')";
SqlInsert.insert(sql_insert);
}
private String subNetSame(String nodeid1, String nodeid2) {
String result = null;
String sql = "select subnetaddr from tb_topo_subnet where nodeid = '"
+ nodeid1
+ "' and subnetaddr in (select subnetaddr from tb_topo_subnet where nodeid = '"
+ nodeid2 + "')";
List list = SqlQuery.findList(sql);
for (int i = 0; i < list.size(); i++) {
String[] item = (String[]) list.get(i);
result = item[0];
}
return result;
}
private boolean existNode(String nodeid) {
boolean result = false;
List list = SqlQuery
.findList("select * from tb_topo_node_info where node_id='"
+ nodeid + "'");
if (list.size() > 0) {
result = true;
}
return result;
}
public static void main(String args[]) {
NetLink netLink = new NetLink();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -