public static String getLinkLocalIpEnd() { final String[] cidrPair = getLinkLocalCIDR().split("\\/"); final String cidr = cidrPair[0]; return getIpRangeEndIpFromCidr(cidr, MAX_CIDR - Long.parseLong(cidrPair[1])); }
endIp = NetUtils.getIpRangeEndIpFromCidr(cidrAddress, cidrSize);
private List<Pair<String, String>> getIpAddressRanges(Network network) { List<Pair<String, String>> ipAddressRanges = Lists.newArrayList(); String subnet = NetUtils.getCidrSubNet(network.getCidr()); String netmask = NetUtils.getCidrNetmask(network.getCidr()); long cidrSize = NetUtils.getCidrSize(netmask); Set<Long> allIPsInCidr = NetUtils.getAllIpsFromCidr(subnet, cidrSize, new HashSet<Long>()); if (allIPsInCidr == null || !(allIPsInCidr instanceof TreeSet)) { throw new IllegalStateException("The IPs in CIDR for subnet " + subnet + " where null or returned in a non-ordered set."); } Iterator<Long> ipIterator = allIPsInCidr.iterator(); long ip = ipIterator.next(); long gatewayIp = NetUtils.ip2Long(network.getGateway()); String lastIp = NetUtils.getIpRangeEndIpFromCidr(subnet, cidrSize); if (gatewayIp == ip) { ip = ipIterator.next(); ipAddressRanges.add(Pair.of(NetUtils.long2Ip(ip), lastIp)); } else if (!network.getGateway().equals(lastIp)) { ipAddressRanges.add(Pair.of(NetUtils.long2Ip(ip), NetUtils.long2Ip(gatewayIp - 1))); ipAddressRanges.add(Pair.of(NetUtils.long2Ip(gatewayIp + 1), lastIp)); } else { ipAddressRanges.add(Pair.of(NetUtils.long2Ip(ip), NetUtils.long2Ip(gatewayIp - 1))); } return ipAddressRanges; }
endIp = NetUtils.getIpRangeEndIpFromCidr(cidrAddress, cidrSize);
public static String getLinkLocalIpEnd() { final String[] cidrPair = getLinkLocalCIDR().split("\\/"); final String cidr = cidrPair[0]; return getIpRangeEndIpFromCidr(cidr, MAX_CIDR - Long.parseLong(cidrPair[1])); }
public static SortedSet<Long> getAllIpsFromCidr(final String cidr_ip, final long size, final Set<Long> usedIps) { final SortedSet<Long> result = new TreeSet<>(); long start = ip2Long(getIpRangeStartIpFromCidr(cidr_ip, size)); final long end = ip2Long(getIpRangeEndIpFromCidr(cidr_ip, size)); while (start <= end) { if (!usedIps.contains(start)) { result.add(start); } start++; } return result; }