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-01 20:39:54 +0200
committerGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-07-09 09:59:28 +0200
commitdb4294a000dd101073e1ff9f76f6687bac3ba06c (patch)
tree371516287b370f7ea4cc69671866bc4cbf2426b4 /src/main/java/com/it_jaros/jscanner/Scanner.java
parent400ec588eabf30e941d10847eafd092cd5ba6e2f (diff)
Added quiet flag
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/Scanner.java')
-rw-r--r--src/main/java/com/it_jaros/jscanner/Scanner.java18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/Scanner.java b/src/main/java/com/it_jaros/jscanner/Scanner.java
index e8cd9e8..2c0a36c 100644
--- a/src/main/java/com/it_jaros/jscanner/Scanner.java
+++ b/src/main/java/com/it_jaros/jscanner/Scanner.java
@@ -24,19 +24,25 @@ public class Scanner {
private final Counter counter = new Counter();
private final ProgressBar progressBar = new ProgressBar();
private final Semaphore socketLimit;
+ private final boolean disableOnlineCheck;
+ private final boolean quiet;
+ private final int maxHostsLimit;
+ private final int maxWorkersPerHost;
private final int timeoutInMillis;
private final long delayInNanos;
- private final int maxWorkersPerHost;
- private final int maxHostsLimit;
- private final boolean disableOnlineCheck;
- public Scanner(int socketLimit, int timeoutInMillis, int delayInMillis, int maxWorkersPerHost, int maxHostsLimit, boolean disableOnlineCheck) {
+ public Scanner(int socketLimit, int timeoutInMillis, int delayInMillis, int maxWorkersPerHost, int maxHostsLimit, boolean disableOnlineCheck, boolean quiet) {
this.timeoutInMillis = timeoutInMillis;
this.delayInNanos = TimeUnit.MILLISECONDS.toNanos(Math.max(0, delayInMillis));
this.socketLimit = new Semaphore(socketLimit);
this.maxWorkersPerHost = maxWorkersPerHost;
this.maxHostsLimit = maxHostsLimit;
this.disableOnlineCheck = disableOnlineCheck;
+ this.quiet = quiet;
+ }
+
+ public Scanner(ScanOptions options) {
+ this(options.openSocketLimit(), options.timeoutInMillis(), options.delayInMillis(), options.maxWorkersPerHost(), options.maxHostsLimit(), options.disableHostCheck(), options.quiet());
}
public List<ScanResult> scan(ScanOptions options) {
@@ -70,7 +76,7 @@ public class Scanner {
public List<ScanResult> scanHosts(Stream<String> hosts, String ports) throws IOException {
List<ScanResult> results = new ArrayList<>();
- progressBar.start();
+ progressBar.start(quiet);
try (ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor()) {
CompletionService<ScanResult> completionService = new ExecutorCompletionService<>(executor);
Queue<String> hostsInQueue = hosts.collect(Collectors.toCollection(ArrayDeque::new));
@@ -101,7 +107,7 @@ public class Scanner {
}
}
- progressBar.stop();
+ progressBar.stop(quiet);
System.out.println("--------------------");
System.out.println("Finished scan!");
System.out.println("Stats:");