交换机端口过滤

This commit is contained in:
qiminbao
2025-09-28 15:58:34 +08:00
parent 179e29d9a5
commit 321235fc23
@@ -23,6 +23,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class SwitchBoardServiceImpl implements SwitchBoardService {
@@ -404,6 +405,7 @@ public class SwitchBoardServiceImpl implements SwitchBoardService {
ifNumberOID = GlobalConfig.OTHER_INDEX_OID;
filter_value = GlobalConfig.OTHER_FILTER;
}
AssertLog.info("交换机采集type={},筛选端口={}",type,JSON.toJSONString(filter_value));
if(StringUtils.isBlank(ifNumberOID)){
System.err.println("未初始化索引OID");
return "";
@@ -437,19 +439,28 @@ public class SwitchBoardServiceImpl implements SwitchBoardService {
}
// 提取最后一个值:就是 ifIndex 编号
int ifIndex = returnedOid.get(returnedOid.size() - 1);
// System.out.println("Found port index: " + ifIndex);
if(!filter_value.contains(String.valueOf(ifIndex))){
int value = vb.getVariable().toInt();
if(CollectionUtil.isEmpty(filter_value)){
// AssertLog.info("交换机采集type={},索引返回:值={}",type,vb);
indexes.add(ifIndex);
}else{
if(filter_value.contains(String.valueOf(value))){
// AssertLog.info("交换机采集type={},索引返回:值={}",type,vb);
indexes.add(ifIndex);
}
}
}
// 更新下一次请求的起始 OIDSNMP Walk
pdu.set(0, new VariableBinding(responsePdu.getVariableBindings().get(0).getOid()));
}
System.out.println("\n=== 接口数量: " + indexes.size() + " ===");
if(CollectionUtil.isEmpty(indexes)){
System.err.println("返回获取索引列表为空");
return "";
}
//去重
indexes = indexes.stream().distinct().collect(Collectors.toList());
System.out.println("\n=== 接口数量: " + indexes.size() + " ===");
System.out.println("\n=== 接口列表: " + JSON.toJSONString(indexes));
String[] ifOIDs = oidParams.keySet().toArray(new String[0]);
String[] params = oidParams.values().toArray(new String[0]);
if(!StringUtils.equals(type,"switchNet") && !StringUtils.equals(type,"switchModule")
@@ -514,7 +525,7 @@ public class SwitchBoardServiceImpl implements SwitchBoardService {
if (event != null && event.getResponse() != null) {
VariableBinding[] vbs = event.getResponse().getVariableBindings().toArray(new VariableBinding[0]);
for (int m = 0; m < params.length; m++) {
AssertLog.info("参数名:{},值={}", params[m],vbs[m]);
// AssertLog.info("参数名:{},值={}", params[m],vbs[m]);
json.put(params[m],vbs[m].getVariable().toString());
}
}