From 321235fc23ba02951e188475de9c513e490b58e3 Mon Sep 17 00:00:00 2001 From: qiminbao Date: Sun, 28 Sep 2025 15:58:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E6=8D=A2=E6=9C=BA=E7=AB=AF=E5=8F=A3?= =?UTF-8?q?=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SwitchBoardServiceImpl.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/tongran/agent/client/service/impl/SwitchBoardServiceImpl.java b/src/main/java/com/tongran/agent/client/service/impl/SwitchBoardServiceImpl.java index d453be5..06c5b72 100644 --- a/src/main/java/com/tongran/agent/client/service/impl/SwitchBoardServiceImpl.java +++ b/src/main/java/com/tongran/agent/client/service/impl/SwitchBoardServiceImpl.java @@ -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); + } } } // 更新下一次请求的起始 OID(SNMP 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()); } }