summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/jscanner/ServiceDetector.java
diff options
context:
space:
mode:
authorGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-08-12 13:24:27 +0200
committerGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-08-12 13:50:46 +0200
commitff14e0fc4e3fe4f5b8a67640d28850064661d7ab (patch)
treef141a2d34d902d344207cfbbc6ac614ec1b3840d /src/main/java/com/it_jaros/jscanner/ServiceDetector.java
parent540b09b1a019f95a9322a6d19e8928369bb20fcb (diff)
Major refactoring of package structure
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/ServiceDetector.java')
-rw-r--r--src/main/java/com/it_jaros/jscanner/ServiceDetector.java47
1 files changed, 0 insertions, 47 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/ServiceDetector.java b/src/main/java/com/it_jaros/jscanner/ServiceDetector.java
deleted file mode 100644
index 4d4f76e..0000000
--- a/src/main/java/com/it_jaros/jscanner/ServiceDetector.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.it_jaros.jscanner;
-
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-import java.util.regex.Pattern;
-
-public class ServiceDetector {
- private static final List<ServicePattern> patterns = List.of(
- new ServicePattern(ServiceType.DNS, Pattern.compile("(?i)\\bDNS\\b")),
- new ServicePattern(ServiceType.DNS, Pattern.compile("(?i)\\bBIND\\b")),
- new ServicePattern(ServiceType.DNS, Pattern.compile("(?i)\\bNSD\\b")),
- new ServicePattern(ServiceType.DNS, Pattern.compile("(?i)\\bPowerDNS\\b")),
- new ServicePattern(ServiceType.DNS, Pattern.compile("(?i)\\bUnbound\\b")),
- new ServicePattern(ServiceType.FTP, Pattern.compile("(?i)^220.*\\bFTP\\b")),
- new ServicePattern(ServiceType.HTTP, Pattern.compile("(?i)\\bServer:\\s*")),
- new ServicePattern(ServiceType.HTTP, Pattern.compile("(?i)^HTTP/")),
- new ServicePattern(ServiceType.IMAP, Pattern.compile("(?i)^\\* OK.*\\bIMAP\\b")),
- new ServicePattern(ServiceType.POP3, Pattern.compile("(?i)^\\+OK.*\\bPOP3\\b")),
- new ServicePattern(ServiceType.SMTP, Pattern.compile("(?i)^220.*\\bESMTP\\b")),
- new ServicePattern(ServiceType.SMTP, Pattern.compile("(?i)^220.*\\bSMTP\\b")),
- new ServicePattern(ServiceType.SSH, Pattern.compile("(?i)^SSH-"))
- );
-
- public static ServiceType detect(byte[] banner) {
- if (banner == null || banner.length == 0) {
- return ServiceType.UNKNOWN;
- }
-
- String bannerString = new String(banner, StandardCharsets.UTF_8);
- for (ServicePattern servicePattern : patterns) {
- if (servicePattern.matches(bannerString)) {
- return servicePattern.serviceType();
- }
- }
-
- return ServiceType.UNKNOWN;
- }
-
- private record ServicePattern(
- ServiceType serviceType,
- Pattern pattern
- ) {
- boolean matches(String banner) {
- return pattern.matcher(banner).find();
- }
- }
-} \ No newline at end of file