summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/jscanner/App.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/App.java')
-rw-r--r--src/main/java/com/it_jaros/jscanner/App.java55
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