summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/networkScanner/PortRange.java
diff options
context:
space:
mode:
authorGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-03-16 16:41:25 +0100
committerGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-07-09 09:59:28 +0200
commit7946b8aae3427b180d28441f8a02ae6665ac215c (patch)
treef10deda6e765715a68d37981a5ab0a6c73744dc6 /src/main/java/com/it_jaros/networkScanner/PortRange.java
parent98a62828f7305fc3a2a36a9b19f0ae98ce78904b (diff)
Renamed package
Diffstat (limited to 'src/main/java/com/it_jaros/networkScanner/PortRange.java')
-rw-r--r--src/main/java/com/it_jaros/networkScanner/PortRange.java91
1 files changed, 0 insertions, 91 deletions
diff --git a/src/main/java/com/it_jaros/networkScanner/PortRange.java b/src/main/java/com/it_jaros/networkScanner/PortRange.java
deleted file mode 100644
index 9075ec2..0000000
--- a/src/main/java/com/it_jaros/networkScanner/PortRange.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package com.it_jaros.networkScanner;
-
-import java.util.BitSet;
-import java.util.NoSuchElementException;
-
-public class PortRange {
-
- public static final int MIN_PORT = 1;
- public static final int MAX_PORT = 65535;
- private final BitSet specifiedPorts = new BitSet(MAX_PORT);
- private final BitSet availablePorts = new BitSet(MAX_PORT);
-
- private int cursor;
- private int done = 0;
-
- public PortRange(String ports) {
- if (ports == null || "".equals(ports)) {
- // keep defaults
- specifiedPorts.set(1, 1024 + 1);
- return;
- }
-
- String[] splitComma = ports.split(",");
- for (String commaValue : splitComma) {
- if (commaValue.contains("-")) {
- String[] rangeValue = commaValue.split("-");
- if (rangeValue.length > 2) {
- throw new IllegalArgumentException(String.format("Argument contains too many '-'' %s", commaValue));
- }
-
- int start = Integer.parseInt(rangeValue[0]);
- int end = Integer.parseInt(rangeValue[1]);
- checkValues(start, end);
- specifiedPorts.set(start, end + 1);
- } else {
- int port = Integer.parseInt(commaValue);
- checkValue(port);
- specifiedPorts.set(Integer.parseInt(commaValue));
- }
- }
-
- availablePorts.or(specifiedPorts);
- cursor = availablePorts.nextSetBit(MIN_PORT);
- }
-
- private void checkValues(int start, int end) {
- checkValue(start);
- checkValue(end);
-
- if (start >= end) {
- throw new IllegalArgumentException(
- String.format("Start value cannot be equal or bigger than end value '%s >= %s'", start, end));
- }
- }
-
- private void checkValue(int port) {
- if (port < MIN_PORT) {
- throw new IllegalArgumentException(
- String.format("Start value smaller than allowed range %s < %s", port, MIN_PORT));
- }
-
- if (port > MAX_PORT) {
- throw new IllegalArgumentException(
- String.format("End value bigger than allowed range %s > %s", port, MAX_PORT));
- }
- }
-
- public int next() {
- int p = availablePorts.nextSetBit(cursor);
- if (p > 0) {
- availablePorts.clear(p);
- cursor = p + 1;
- done++;
- return p;
- }
-
- throw new NoSuchElementException("Reached end of port range");
- }
-
- public boolean hasNext() {
- return availablePorts.nextSetBit(cursor) > 0;
- }
-
- public int getTotal() {
- return specifiedPorts.cardinality();
- }
-
- public int getDone() {
- return done;
- }
-}