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 --- src/main/java/com/it_jaros/networkScanner/App.java | 49 +++++++++++----------- 1 file changed, 24 insertions(+), 25 deletions(-) (limited to 'src/main/java/com/it_jaros/networkScanner/App.java') diff --git a/src/main/java/com/it_jaros/networkScanner/App.java b/src/main/java/com/it_jaros/networkScanner/App.java index f173e18..49b50c0 100644 --- a/src/main/java/com/it_jaros/networkScanner/App.java +++ b/src/main/java/com/it_jaros/networkScanner/App.java @@ -4,39 +4,38 @@ import java.util.List; public class App { public static void main(String[] args) { - Scanner scanner = new Scanner(); - if (args.length < 1 || args[0] == "") { + try { + ScanTarget target = (new CliParser()).parseArgs(args); + Scanner scanner = new Scanner(); + List openPorts = scanner.scanPorts(target); + printResults(target, openPorts); + } catch (IllegalArgumentException e) { + System.out.println(e.getMessage()); usageAndExit(); - } - String target = args[0]; - System.out.printf( - "Scanning host=%s \n", - target); - - try (FdCounter fd = new FdCounter()) { - fd.start(20); // sample every 20ms - List openPorts = scanner.scanPorts(target, 10000); - printPorts(target, openPorts); - System.out.println("FD baseline: " + fd.baseline()); - System.out.println("FD limit: " + fd.maxFds()); - System.out.println("Peak open FDs during scan: " + fd.peakOpenFds()); + } catch (Exception e) { + System.err.println("Something went wrong"); } } - public static void printPorts(String address, List openPorts) { - System.out.println("Address:" + address); - openPorts.forEach((p) -> System.out.println("Open port: " + p)); + public static void printResults(ScanTarget address, List openPorts) { + System.out.println("Target: " + address.address()); + System.out.print("Ports:"); + openPorts.forEach((p) -> System.out.print(" " + p)); } - private static void usageAndExit() { + public static void usageAndExit() { System.err.println(""" - Usage: - java -jar scanner.jar + Usage: + java -jar scanner.jar [OPTIONS] + + Options: + --delay: Waiting period in between connection attempts for a host + --connLimit: Socket Connection limit for a host - Examples: - java -jar scanner.jar localhost - java -jar scanner.jar fd00::1 - """); + Examples: + java -jar scanner.jar localhost + java -jar scanner.jar fd00::1 + """); System.exit(1); } } -- cgit v1.3.1