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; } }