summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/networkScanner/CliParser.java
diff options
context:
space:
mode:
authorGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-01-23 22:14:59 +0100
committerGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-07-09 09:59:28 +0200
commitcbf08c1560c18bede155efc6b3a6a501a338661e (patch)
treedd4a8f7e4152e9de03dcf24b541e30c09dcb58a1 /src/main/java/com/it_jaros/networkScanner/CliParser.java
parente244891e9824c9db3cb32468049133d3510110e1 (diff)
Added cli parser
Diffstat (limited to 'src/main/java/com/it_jaros/networkScanner/CliParser.java')
-rw-r--r--src/main/java/com/it_jaros/networkScanner/CliParser.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/com/it_jaros/networkScanner/CliParser.java b/src/main/java/com/it_jaros/networkScanner/CliParser.java
new file mode 100644
index 0000000..442e7c1
--- /dev/null
+++ b/src/main/java/com/it_jaros/networkScanner/CliParser.java
@@ -0,0 +1,46 @@
+package com.it_jaros.networkScanner;
+
+public class CliParser {
+
+ public ScanTarget parseArgs(String[] args) {
+ if (args.length < 1 || args[0].trim().equals("")) {
+ throw new IllegalArgumentException("No argument given");
+ }
+
+ String currentArg;
+ String target = null;
+ int socketLimit = 1000;
+ int delayInMillis = 0;
+ for (int i = 0; i < args.length; i++) {
+ currentArg = args[i];
+ if (!currentArg.startsWith("-")) {
+ target = currentArg;
+ continue;
+ }
+
+ try {
+ switch (currentArg) {
+ case "--help", "-h":
+ App.usageAndExit();
+ case "--socketLimit", "-sl":
+ socketLimit = Integer.parseInt(args[++i]);
+ break;
+ case "--delay", "-d":
+ delayInMillis = Integer.parseInt(args[++i]);
+ break;
+ default:
+ throw new IllegalArgumentException("No such param " + currentArg);
+ }
+ } catch (IndexOutOfBoundsException | NumberFormatException e) {
+ System.out.printf("Missing or wrong argument for option %s", currentArg);
+ System.exit(2);
+ }
+ }
+
+ System.out.printf(
+ "Scanning target '%s' with socketLimit(%s), delayInMillis(%s) \n", target, socketLimit, delayInMillis);
+
+ return new ScanTarget(target, socketLimit, delayInMillis);
+ }
+
+}