summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/it_jaros/network_scanner/CliDefaults.java2
-rw-r--r--src/main/java/com/it_jaros/network_scanner/Scanner.java18
2 files changed, 18 insertions, 2 deletions
diff --git a/src/main/java/com/it_jaros/network_scanner/CliDefaults.java b/src/main/java/com/it_jaros/network_scanner/CliDefaults.java
index 6164aff..de7bf3d 100644
--- a/src/main/java/com/it_jaros/network_scanner/CliDefaults.java
+++ b/src/main/java/com/it_jaros/network_scanner/CliDefaults.java
@@ -5,7 +5,7 @@ public class CliDefaults {
public static final int DELAY_IN_MILLIS = 0;
public static final int TIMEOUT_IN_MILLIS = 300;
public static final int MAX_WORKERS_PER_HOST = 1000;
- public static final int MAX_TARGETS_LIMIT = 3;
+ public static final int MAX_TARGETS_LIMIT = 10;
public static final String PORTS = "1-1024";
public static final boolean SHOW_FILTERED_PORTS = false;
}
diff --git a/src/main/java/com/it_jaros/network_scanner/Scanner.java b/src/main/java/com/it_jaros/network_scanner/Scanner.java
index 8144d6b..85cc46a 100644
--- a/src/main/java/com/it_jaros/network_scanner/Scanner.java
+++ b/src/main/java/com/it_jaros/network_scanner/Scanner.java
@@ -76,9 +76,15 @@ public class Scanner {
BitSet openPorts = new BitSet(PortRange.MAX_PORT);
BitSet filteredPorts = new BitSet(PortRange.MAX_PORT);
- Progress progress = new Progress(target, portRange.getTotal(), new AtomicInteger(), new AtomicInteger(), new AtomicInteger() );
+ Progress progress = new Progress(target, portRange.getTotal(), new AtomicInteger(), new AtomicInteger(), new AtomicInteger());
progressBar.submit(progress);
+ if(!checkHostOnline(target)) {
+ // Visually show that this host is basically done
+ progress.done().set(progress.total());
+ return new ScanResult(target, openPorts, filteredPorts);
+ }
+
try (ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor()) {
List<Future<PortResult>> futures = new ArrayList<>();
while (portRange.hasNext()) {
@@ -127,6 +133,16 @@ public class Scanner {
return new ScanResult(target, openPorts, filteredPorts);
}
+ private boolean checkHostOnline(String target) {
+ try {
+ return InetAddress.getByName(target).isReachable(2000);
+ } catch (IOException e) {
+ // something went wrong
+ }
+
+ return false;
+ }
+
private void waitForSlot(AtomicLong scanSlotFactory) {
if (delayInNanos > 0) {
long slot = scanSlotFactory.getAndAdd(delayInNanos);