From bd2208922ea6a0486074c72a57b01d7df368f885 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Wed, 6 Jan 2021 09:12:56 +0100 Subject: Generating IP addresses. --- .../java/io/trygvis/rules/network/Ipv4Cidr.java | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/main/java/io/trygvis/rules/network/Ipv4Cidr.java (limited to 'src/main/java/io/trygvis/rules/network/Ipv4Cidr.java') diff --git a/src/main/java/io/trygvis/rules/network/Ipv4Cidr.java b/src/main/java/io/trygvis/rules/network/Ipv4Cidr.java new file mode 100644 index 0000000..34b3a0b --- /dev/null +++ b/src/main/java/io/trygvis/rules/network/Ipv4Cidr.java @@ -0,0 +1,40 @@ +package io.trygvis.rules.network; + +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.ArrayList; +import java.util.Collection; + +public class Ipv4Cidr { + public final int network; + public final int netmask; + public final int size; + public final int bits; + + public Ipv4Cidr(int network, int netmask, int size, int bits) { + this.network = network; + this.netmask = netmask; + this.size = size; + this.bits = bits; + } + + @Override + public String toString() { + return "%d.%d.%d.%d/%d".formatted( + network >> 24 & 0xff, + network >> 16 & 0xff, + network >> 8 & 0xff, + network & 0xff, + bits); + } + + public Collection addresses() { + var end = network + size; + var addresses = new ArrayList(size); + for (int address = network; address < end; address++) { + addresses.add(new Ipv4Address(address)); + } + + return addresses; + } +} -- cgit v1.2.3