public static String getNetworkCidrOfIpRange(String startIp, int prefixLen) { try { IPv6Address start = IPv6Address.fromString(startIp); IPv6Network network = IPv6Network.fromAddressAndMask(start, IPv6NetworkMask.fromPrefixLength(prefixLen)); return network.toString(); } catch (Exception e) { return ""; } }
public static String getNetworkMaskOfIpRange(String startIp, int prefixLen) { try { IPv6Address start = IPv6Address.fromString(startIp); IPv6Network network = IPv6Network.fromAddressAndMask(start, IPv6NetworkMask.fromPrefixLength(prefixLen)); return network.getNetmask().toString(); } catch (Exception e) { return ""; } }
public IPv6NetworkSplitsIterator(IPv6NetworkMask size) { this.size = size; this.nbrAddressesPerSplit = BigInteger.ONE.shiftLeft(128 - size.asPrefixLength()); this.current = IPv6Network.fromAddressAndMask(IPv6Network.this.address, size); }
public IPv6NetworkSplitsIterator(IPv6NetworkMask size) { this.size = size; this.nbrAddressesPerSplit = BigInteger.ONE.shiftLeft(128 - size.asPrefixLength()); this.current = IPv6Network.fromAddressAndMask(IPv6Network.this.address, size); }
IPv6Network network = IPv6Network.fromAddressAndMask(start, IPv6NetworkMask.fromPrefixLength(prefixLen)); if (!network.contains(end)) { return false;
private IPv6Network calculateNext(IPv6Network current) { BigInteger next = current.address.toBigInteger().add(nbrAddressesPerSplit); return IPv6Network.fromAddressAndMask(IPv6Address.fromBigInteger(next), size); }
private IPv6Network calculateNext(IPv6Network current) { BigInteger next = current.address.toBigInteger().add(nbrAddressesPerSplit); return IPv6Network.fromAddressAndMask(IPv6Address.fromBigInteger(next), size); }
/** * Allocate the first available subnet from the pool. * * @return resulting pool */ public IPv6AddressPool allocate() { if (!isExhausted()) { // get the first range of free subnets, and take the first subnet of that range final IPv6AddressRange firstFreeRange = freeRanges.first(); final IPv6Network allocated = IPv6Network.fromAddressAndMask(firstFreeRange.getFirst(), allocationSubnetSize); return doAllocate(allocated, firstFreeRange); } else { // exhausted return null; } }
/** * Create an IPv6 network from its String representation. For example "1234:5678:abcd:0:0:0:0:0/64" or "2001::ff/128". * * @param string string representation * @return ipv6 network */ public static IPv6Network fromString(String string) { if (string.indexOf('/') == -1) { throw new IllegalArgumentException("Expected format is network-address/prefix-length"); } final String networkAddressString = parseNetworkAddress(string); int prefixLength = parsePrefixLength(string); final IPv6Address networkAddress = IPv6Address.fromString(networkAddressString); return fromAddressAndMask(networkAddress, new IPv6NetworkMask(prefixLength)); }
/** * Create an IPv6 network from its String representation. For example "1234:5678:abcd:0:0:0:0:0/64" or "2001::ff/128". * * @param string string representation * @return ipv6 network */ public static IPv6Network fromString(String string) { if (string.indexOf('/') == -1) { throw new IllegalArgumentException("Expected format is network-address/prefix-length"); } final String networkAddressString = parseNetworkAddress(string); int prefixLength = parsePrefixLength(string); final IPv6Address networkAddress = IPv6Address.fromString(networkAddressString); return fromAddressAndMask(networkAddress, new IPv6NetworkMask(prefixLength)); }
/** * Allocate the first available subnet from the pool. * * @return resulting pool */ public IPv6AddressPool allocate() { if (!isExhausted()) { // get the first range of free subnets, and take the first subnet of that range final IPv6AddressRange firstFreeRange = freeRanges.first(); final IPv6Network allocated = IPv6Network.fromAddressAndMask(firstFreeRange.getFirst(), allocationSubnetSize); return doAllocate(allocated, firstFreeRange); } else { // exhausted return null; } }
next = IPv6Network.fromAddressAndMask(base, IPv6NetworkMask.fromPrefixLength(128 - step));
next = IPv6Network.fromAddressAndMask(base, IPv6NetworkMask.fromPrefixLength(128 - step));