From 1f87648ba3c1aabdd167b955d5f10e2c7613c691 Mon Sep 17 00:00:00 2001 From: Matthias Jaros Date: Mon, 16 Mar 2026 16:21:32 +0100 Subject: Added cli option for worker threads per host --- .../java/com/it_jaros/networkScanner/CliParser.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/main/java/com/it_jaros/networkScanner/CliParser.java') diff --git a/src/main/java/com/it_jaros/networkScanner/CliParser.java b/src/main/java/com/it_jaros/networkScanner/CliParser.java index 3550249..9bb146b 100644 --- a/src/main/java/com/it_jaros/networkScanner/CliParser.java +++ b/src/main/java/com/it_jaros/networkScanner/CliParser.java @@ -14,6 +14,7 @@ public class CliParser { int socketLimit = 1000; int delayInMillis = 0; int timeoutInMillis = 1000; + int maxWorkersPerHost = 1000; String ports = "1-1024"; for (int i = 0; i < args.length; i++) { final String currentArg = args[i]; @@ -26,6 +27,7 @@ public class CliParser { switch (currentArg) { case "--help", "-h": usageAndExit(); + break; case "--socketLimit", "-sl": socketLimit = Integer.parseInt(args[++i]); break; @@ -38,6 +40,9 @@ public class CliParser { case "--ports", "-p": ports = args[++i]; break; + case "--maxWorkersPerHost", "-wh": + maxWorkersPerHost = Integer.parseInt(args[++i]); + break; default: throw new IllegalArgumentException("No such param " + currentArg); } @@ -48,10 +53,10 @@ public class CliParser { } System.out.printf( - "Parsed arguments: targets('%s'), ports(%s), socketLimit(%s), delayInMillis(%s), timeoutInMillis(%s)\n", - targets, ports, socketLimit, delayInMillis, timeoutInMillis); + "Parsed arguments: targets('%s'), ports(%s), socketLimit(%s), delayInMillis(%s), timeoutInMillis(%s), maxWorkersPerHost(%s)%n", + targets, ports, socketLimit, delayInMillis, timeoutInMillis, maxWorkersPerHost); - return new ScanOptions(targets.stream().toList(), socketLimit, delayInMillis, timeoutInMillis, ports); + return new ScanOptions(targets.stream().toList(), socketLimit, delayInMillis, timeoutInMillis, maxWorkersPerHost, ports); } public void usageAndExit() { @@ -60,10 +65,11 @@ public class CliParser { java -jar scanner.jar [OPTIONS] Options: - --delay, -d: Waiting period in millis for connection attempts for a host - --socketLimit, -sl: Socket Connection limit for a host - --timeout, -t: Timeout per connection attempt + --delay, -d: Waiting period in millis for connection attempts for a host; (Default: 0) + --socketLimit, -sl: Socket Connection limit for a host; (Default: 1000) + --timeout, -t: Timeout per connection attempt, 0 means infinite: (Default: 1000) --ports, -p: Ports to be scanned + --maxWorkersPerHost, -wh: Virtual Worker Threads run per target. Higher doesn't mean necessarily faster. But the more you use the more RAM is required. (Default: 1000) Examples: java -jar scanner.jar localhost -- cgit v1.3.1