From cbf08c1560c18bede155efc6b3a6a501a338661e Mon Sep 17 00:00:00 2001 From: Matthias Jaros Date: Fri, 23 Jan 2026 22:14:59 +0100 Subject: Added cli parser --- .../com/it_jaros/networkScanner/CliParser.java | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/java/com/it_jaros/networkScanner/CliParser.java (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 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); + } + +} -- cgit v1.3.1