summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/jscanner/Scanner.java
diff options
context:
space:
mode:
authorGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-07-02 11:49:42 +0200
committerGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-07-09 09:59:28 +0200
commit53ad9b193e3c5fd2324edeca838e5a8e4cce7ed1 (patch)
treefeeae69ba9ae8f2c619a1d984f79a896c33c9cbf /src/main/java/com/it_jaros/jscanner/Scanner.java
parent2624f889d5adadc592c015e31deeb32a8d0e3a23 (diff)
Added banner recognition parameter to enable it depending on use case
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/Scanner.java')
-rw-r--r--src/main/java/com/it_jaros/jscanner/Scanner.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/Scanner.java b/src/main/java/com/it_jaros/jscanner/Scanner.java
index 5a6ccbb..4ac60b1 100644
--- a/src/main/java/com/it_jaros/jscanner/Scanner.java
+++ b/src/main/java/com/it_jaros/jscanner/Scanner.java
@@ -24,6 +24,7 @@ public class Scanner implements AutoCloseable {
private volatile boolean cancelled = false;
private final Semaphore socketLimit;
+ private final boolean bannerRecognition;
private final boolean disableOnlineCheck;
private final boolean quiet;
private final int maxHostsLimit;
@@ -38,9 +39,11 @@ public class Scanner implements AutoCloseable {
int maxWorkersPerHost,
int maxHostsLimit,
boolean disableOnlineCheck,
- boolean quiet
+ boolean quiet,
+ boolean bannerRecognition
) {
this.delayInNanos = TimeUnit.MILLISECONDS.toNanos(Math.max(0, delayInMillis));
+ this.bannerRecognition = bannerRecognition;
this.disableOnlineCheck = disableOnlineCheck;
this.maxHostsLimit = maxHostsLimit;
this.maxWorkersPerHost = maxWorkersPerHost;
@@ -50,7 +53,7 @@ public class Scanner implements AutoCloseable {
}
public Scanner(ScanOptions options) {
- this(options.openSocketLimit(), options.timeoutInMillis(), options.delayInMillis(), options.maxWorkersPerHost(), options.maxHostsLimit(), options.disableHostCheck(), options.quiet());
+ this(options.openSocketLimit(), options.timeoutInMillis(), options.delayInMillis(), options.maxWorkersPerHost(), options.maxHostsLimit(), options.disableHostCheck(), options.quiet(), options.bannerRecognition());
}
public List<ScanResult> scan(ScanOptions options) {
@@ -228,7 +231,10 @@ public class Scanner implements AutoCloseable {
scanState.counter().inc();
try (Socket socket = new Socket()) {
socket.connect(new InetSocketAddress(host, port), timeoutInMillis);
- result.setBanner(getBanner(socket));
+
+ if (bannerRecognition) {
+ result.setBanner(getBanner(socket));
+ }
result.setState(PortState.OPEN);
} catch (SocketTimeoutException ignored) {
result.setState(PortState.FILTERED);