From 8b881560dd8884e8e54e1e64654f79749d9ff456 Mon Sep 17 00:00:00 2001 From: Matthias Jaros Date: Mon, 13 Apr 2026 17:31:55 +0200 Subject: Renamed package from network_scanner to jscanner --- src/main/java/com/it_jaros/jscanner/App.java | 45 ++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/main/java/com/it_jaros/jscanner/App.java (limited to 'src/main/java/com/it_jaros/jscanner/App.java') diff --git a/src/main/java/com/it_jaros/jscanner/App.java b/src/main/java/com/it_jaros/jscanner/App.java new file mode 100644 index 0000000..c94b2df --- /dev/null +++ b/src/main/java/com/it_jaros/jscanner/App.java @@ -0,0 +1,45 @@ +package com.it_jaros.jscanner; + +import java.util.BitSet; +import java.util.List; +import java.util.stream.Collectors; + +public class App { + public static void main(String[] args) { + CliParser cliParser = new CliParser(); + try { + ScanOptions options = cliParser.parseArgs(args); + Scanner scanner = new Scanner(options.openSocketLimit(), options.timeoutInMillis(), + options.delayInMillis(), options.maxWorkersPerHost(), options.maxHostsLimit(), options.disableHostCheck()); + printResults(scanner.scan(options), options.showFilteredPorts()); + } catch (IllegalArgumentException e) { + System.out.printf("Error while parsing arguments: %s", e.getMessage()); + cliParser.usageAndExit(); + } catch (Exception e) { + System.out.printf("ERROR: %s", e.getMessage()); + } + } + + public static void printResults(List results, boolean showFilteredPorts) { + results.forEach((ScanResult r) -> printResult(r, showFilteredPorts)); + } + + private static void printResult(ScanResult result, boolean showFilteredPorts) { + if (result.openPorts().isEmpty() && (!showFilteredPorts || result.filteredPorts().isEmpty())) { + return; + } + + System.out.println(result.host()); + if (!result.openPorts().isEmpty()) { + System.out.printf("\t (%d) open:\t%s%n", result.openPorts().cardinality(), map(result.openPorts())); + } + if (showFilteredPorts && !result.filteredPorts().isEmpty()) { + System.out.printf("\t (%d) filtered:\t%s%n", result.filteredPorts().cardinality(), map(result.filteredPorts())); + } + System.out.println(); + } + + private static String map(BitSet ports) { + return ports.stream().mapToObj(String::valueOf).collect(Collectors.joining(",")); + } +} -- cgit v1.3.1