diff options
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/App.java')
| -rw-r--r-- | src/main/java/com/it_jaros/jscanner/App.java | 55 |
1 files changed, 6 insertions, 49 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/App.java b/src/main/java/com/it_jaros/jscanner/App.java index 42d2321..615262a 100644 --- a/src/main/java/com/it_jaros/jscanner/App.java +++ b/src/main/java/com/it_jaros/jscanner/App.java @@ -1,9 +1,6 @@ package com.it_jaros.jscanner; -import java.util.BitSet; -import java.util.List; import java.util.concurrent.CountDownLatch; -import java.util.stream.Collectors; public class App { @@ -14,7 +11,7 @@ public class App { try { run(args); } catch (Exception e) { - System.out.printf("ERROR: %s", e.getMessage()); + System.out.printf("%nFATAL ERROR: %s", e.getMessage()); } } @@ -22,9 +19,12 @@ public class App { ScanOptions options = parseOptions(args); if (options == null) return; try (Scanner scanner = new Scanner(options)) { - Scan scan = Scan.create(options); addShutdownHook(scanner); - scanner.runScan(scan, result -> printPortsResults(result, options.showFilteredPorts())); + Scan scan = Scan.create(options); + ProgressBar progressBar = new ProgressBar(scan, options.quiet()); + progressBar.start(); + scanner.runScan(scan, result -> progressBar.printResult(result, options.showFilteredPorts())); + progressBar.stop(); } finally { shutdownLatch.countDown(); removeShutdownHook(); @@ -44,49 +44,6 @@ public class App { return null; } - private static void printScanResults(List<ScanResult> result, int max, boolean showFilteredPorts) { - printStats(max); - result.forEach((ScanResult r) -> printPortsResults(r, showFilteredPorts)); - } - - private static void printStats(int max) { - System.out.println("--------------------"); - System.out.println("Stats:"); - System.out.println("Peak concurrent connects: " + max); - System.out.println("--------------------"); - } - - private static void printPortsResults(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(), result.bannerRecognition())); - } - 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(",")); - } - - private static String map(BitSet ports, java.util.HashMap<Integer, ServiceType> bannerRecognition) { - return ports.stream().mapToObj(port -> { - ServiceType serviceType = bannerRecognition.getOrDefault(port, ServiceType.UNKNOWN); - - if (serviceType == ServiceType.UNKNOWN) { - return String.valueOf(port); - } - - return port + "/" + serviceType.name().toLowerCase(); - }).collect(Collectors.joining(",")); - } - /** * Notice user that the signal was received * Start shutdown of scanner |
