summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/networkScanner/Scanner.java
diff options
context:
space:
mode:
authorGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-02-16 17:07:46 +0100
committerGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-07-09 09:59:28 +0200
commitbb7e4331a92acc9c0267a744f3b8dd7ff1e5dea8 (patch)
treea12c6422bc8db1fa91627eab33e0516bccbb2cc4 /src/main/java/com/it_jaros/networkScanner/Scanner.java
parent881c9c0ef8f2817aab4bed4aac6696fe5cafc593 (diff)
Added PortRange class that generates ports to scan
Diffstat (limited to 'src/main/java/com/it_jaros/networkScanner/Scanner.java')
-rw-r--r--src/main/java/com/it_jaros/networkScanner/Scanner.java14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/main/java/com/it_jaros/networkScanner/Scanner.java b/src/main/java/com/it_jaros/networkScanner/Scanner.java
index fae1890..10028aa 100644
--- a/src/main/java/com/it_jaros/networkScanner/Scanner.java
+++ b/src/main/java/com/it_jaros/networkScanner/Scanner.java
@@ -34,18 +34,18 @@ public class Scanner {
}
public List<ScanResult> scanPorts(ScanOptions target) {
- return scanPorts(target.targets(), target.delayInMillis());
+ return scanPorts(target.targets(), target.delayInMillis(), new PortRange(target.ports()));
}
- public List<ScanResult> scanPorts(List<String> targets, int delayInMillis) {
+ public List<ScanResult> scanPorts(List<String> targets, int delayInMillis, PortRange portsRange) {
List<ScanResult> results = new ArrayList<>();
long delayInNanos = TimeUnit.MILLISECONDS.toNanos(Math.max(0, delayInMillis));
try (ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();) {
List<Progress> hosts = new ArrayList<>();
for (String target : targets) {
- Progress progress = new Progress(target, 65535, new AtomicInteger(), new AtomicInteger());
+ Progress progress = new Progress(target, portsRange.getTotal(), new AtomicInteger(), new AtomicInteger());
hosts.add(progress);
- results.add(scanTargetAsync(target, delayInNanos, executor, progress));
+ results.add(scanTargetAsync(target, portsRange, delayInNanos, executor, progress));
}
progressBar.start(hosts);
}
@@ -55,11 +55,11 @@ public class Scanner {
return results;
}
- private ScanResult scanTargetAsync(String target, long delayInNanos, ExecutorService executor, Progress p) {
+ private ScanResult scanTargetAsync(String target, PortRange portRange, long delayInNanos, ExecutorService executor, Progress p) {
AtomicLong nextStartNanos = new AtomicLong(System.nanoTime());
Queue<Integer> openPorts = new ConcurrentLinkedQueue<>();
- for (int port = 1; port < 65536; port++) {
- final int currentPort = port;
+ while (portRange.hasNext()) {
+ final int currentPort = portRange.next();
executor.submit(() -> {
try {
scanPortsAsync(target, delayInNanos, nextStartNanos, openPorts, currentPort);