diff options
| author | 2026-01-23 22:14:59 +0100 | |
|---|---|---|
| committer | 2026-07-09 09:59:28 +0200 | |
| commit | cbf08c1560c18bede155efc6b3a6a501a338661e (patch) | |
| tree | dd4a8f7e4152e9de03dcf24b541e30c09dcb58a1 /src/main/java/com/it_jaros/networkScanner/CliParser.java | |
| parent | e244891e9824c9db3cb32468049133d3510110e1 (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.java | 46 |
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); + } + +} |
