summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgujinkai <[email protected]>2024-11-08 14:22:24 +0800
committergujinkai <[email protected]>2024-11-08 14:46:56 +0800
commitc1c69c598e7dfd0c0768414770443252283a423a (patch)
tree9a393c2320b2df603d743cb3def584ede214454b
parent29a19c8e7e5658b433a58ddd0b4710bf9b4515c3 (diff)
[improve][core] Optimize the IntelligenceIndicatorLookup
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/IntelligenceIndicatorKnowledgeBaseHandler.java32
1 files changed, 18 insertions, 14 deletions
diff --git a/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/IntelligenceIndicatorKnowledgeBaseHandler.java b/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/IntelligenceIndicatorKnowledgeBaseHandler.java
index 093dd1d..bb0d61a 100644
--- a/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/IntelligenceIndicatorKnowledgeBaseHandler.java
+++ b/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/IntelligenceIndicatorKnowledgeBaseHandler.java
@@ -1,8 +1,8 @@
package com.geedgenetworks.core.udf.knowlegdebase.handler;
+import com.geedgenetworks.core.utils.cn.common.IPAddress;
import com.geedgenetworks.core.utils.cn.common.Trie;
import com.geedgenetworks.core.utils.cn.csv.HighCsvReader;
-import inet.ipaddr.IPAddress;
import inet.ipaddr.IPAddressString;
import org.apache.commons.lang3.StringUtils;
import org.apache.flink.shaded.guava18.com.google.common.collect.Range;
@@ -78,29 +78,29 @@ public class IntelligenceIndicatorKnowledgeBaseHandler extends AbstractSingleKno
IPAddress startIpAddress;
IPAddress endIpAddress;
if ("Single".equals(addrFormat)) {
- IPAddress ipAddress = new IPAddressString(ip1).getAddress();
- if (ipAddress == null) {
+ IPAddress ipAddress = new IPAddress(ip1);
+ if (ipAddress.getIpAddress() == null) {
continue;
}
startIpAddress = ipAddress;
endIpAddress = ipAddress;
} else if ("Range".equals(addrFormat)) {
- IPAddress ipAddress1 = new IPAddressString(ip1).getAddress();
- IPAddress ipAddress2 = new IPAddressString(ip2).getAddress();
- if (ipAddress1 == null || ipAddress2 == null) {
+ IPAddress ipAddress1 = new IPAddress(ip1);
+ IPAddress ipAddress2 = new IPAddress(ip2);
+ if (ipAddress1.getIpAddress() == null || ipAddress2.getIpAddress() == null) {
continue;
}
startIpAddress = ipAddress1;
endIpAddress = ipAddress2;
} else if ("CIDR".equals(addrFormat)) {
- IPAddress cidrIpAddress = new IPAddressString(ip1 + "/" + ip2).getAddress();
+ inet.ipaddr.IPAddress cidrIpAddress = new IPAddressString(ip1 + "/" + ip2).getAddress();
if (cidrIpAddress == null) {
continue;
}
- IPAddress ipAddressLower = cidrIpAddress.getLower();
- IPAddress ipAddressUpper = cidrIpAddress.getUpper();
- startIpAddress = ipAddressLower;
- endIpAddress = ipAddressUpper;
+ inet.ipaddr.IPAddress ipAddressLower = cidrIpAddress.getLower();
+ inet.ipaddr.IPAddress ipAddressUpper = cidrIpAddress.getUpper();
+ startIpAddress = new IPAddress(ipAddressLower);
+ endIpAddress = new IPAddress(ipAddressUpper);
} else {
logger.warn("unknown addrFormat: " + addrFormat);
continue;
@@ -146,9 +146,13 @@ public class IntelligenceIndicatorKnowledgeBaseHandler extends AbstractSingleKno
public List<String> lookupByIp(String ip) {
List<String> tags = new ArrayList<>();
- IPAddress address = new IPAddressString(ip).getAddress();
- if (address != null) {
- Optional.ofNullable(ipTagMap.get(address)).ifPresent(tags::addAll);
+ try {
+ IPAddress address = new IPAddress(ip);
+ if (address.getIpAddress() != null) {
+ Optional.ofNullable(ipTagMap.get(address)).ifPresent(tags::addAll);
+ }
+ } catch (Exception e) {
+ logger.error("intelligence indicator lookup by ip {} error", ip);
}
return tags;
}