diff options
Diffstat (limited to 'src/main/java/com/it_jaros/network_scanner/App.java')
| -rw-r--r-- | src/main/java/com/it_jaros/network_scanner/App.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/main/java/com/it_jaros/network_scanner/App.java b/src/main/java/com/it_jaros/network_scanner/App.java new file mode 100644 index 0000000..242ae54 --- /dev/null +++ b/src/main/java/com/it_jaros/network_scanner/App.java @@ -0,0 +1,36 @@ +package com.it_jaros.network_scanner; + +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()); + printResults(scanner.scan(options)); + } 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<ScanResult> results) { + results.forEach(App::printResult); + } + + private static void printResult(ScanResult result) { + String ports = result.openPorts().stream().mapToObj(String::valueOf).collect(Collectors.joining(",")); + String output = "[" + result.target() + "]:"; + if (ports.isEmpty()) { + output = output + "No open ports found"; + } else { + output = output + ports; + } + System.out.print(output + "\n"); + } +} |
