/** * Constructs an instance of {@link IPIterator} with tow IP address. * * @param startIP Starting IP address. * @param endIP End IP address. */ public IPIterator(IP startIP, IP endIP) { range = new IPRange(startIP, endIP); currentIP = startIP; }
/** * Constructs an instance of {@link IPIterator} with tow IP address. * * @param startIP Starting IP address. * @param endIP End IP address. */ public IPIterator(IP startIP, IP endIP) { range = new IPRange(startIP, endIP); currentIP = startIP; }
/** * Split IP address range by a IP address. * * @param ip IP address. IP address range should contains the IP address. * @return List of IP address ranges. */ public List<IPRange> split(IP ip) { List<IPRange> ranges = new ArrayList<IPRange>(); if (this.contains(ip)) { ranges.add(new IPRange(this.startIP, ip)); ranges.add(new IPRange(ip, this.endIP)); } return ranges; }
/** * Split IP address range by a IP address. * * @param ip IP address. IP address range should contains the IP address. * @return List of IP address ranges. */ public List<IPRange> split(IP ip) { List<IPRange> ranges = new ArrayList<IPRange>(); if (this.contains(ip)) { ranges.add(new IPRange(this.startIP, ip)); ranges.add(new IPRange(ip, this.endIP)); } return ranges; }
/** * Creates a <code>IpRange</code> instance by a string. * * @param range a string such as "1.1.1.1-1.1.2.255". * @return IP range. */ public static IPRange parse(String range) { String[] ips = range.split("-"); Preconditions.checkArgument( ips.length == 2, "IP range string must be fomarted as [minIP-maxIP],error argument:" + range); return new IPRange(IP.parseFromString(ips[0]), IP.parseFromString(ips[1])); }
/** * Creates a <code>IpRange</code> instance by a string. * * @param range a string such as "1.1.1.1-1.1.2.255". * @return IP range. */ public static IPRange parse(String range) { String[] ips = range.split("-"); Preconditions.checkArgument( ips.length == 2, "IP range string must be fomarted as [minIP-maxIP],error argument:" + range); return new IPRange(IP.parseFromString(ips[0]), IP.parseFromString(ips[1])); }
/** * Gets C class IP range. * * @return C class IP range. */ public static IPRange CClassLocalIPRange() { return new IPRange(new IP(192, 168, 0, 0), new IP(192, 168, 255, 255)); }
/** * Gets A class IP range. * * @return A class IP range. */ public static IPRange AClassLocalIPRange() { // 10.0.0.0 - 10.255.255.255 return new IPRange(new IP(0x0A000000), new IP(0x0AFFFFFF)); }
/** * Gets B class IP range. * * @return B class IP range. */ public static IPRange BClassLocalIPRange() { return new IPRange(new IP(172, 16, 0, 0), new IP(172, 31, 255, 255)); }
/** * Gets A class IP range. * * @return A class IP range. */ public static IPRange AClassLocalIPRange() { // 10.0.0.0 - 10.255.255.255 return new IPRange(new IP(0x0A000000), new IP(0x0AFFFFFF)); }
/** * Gets C class IP range. * * @return C class IP range. */ public static IPRange CClassLocalIPRange() { return new IPRange(new IP(192, 168, 0, 0), new IP(192, 168, 255, 255)); }
/** * Gets B class IP range. * * @return B class IP range. */ public static IPRange BClassLocalIPRange() { return new IPRange(new IP(172, 16, 0, 0), new IP(172, 31, 255, 255)); }
/** * Creates a {@link IPRange} instance by IP with mask. * * @param ipWithMask IP/mask, such as 192.168.70.1/24 * @return {@link IPRange} instance */ public static IPRange parseFromIPWithMask(String ipWithMask) { long minIpAsLong = 0; long maxIpAsLong = 0; String[] strs = ipWithMask.split("/"); if (strs.length == 2) { IP ip = IP.parseFromString(strs[0]); int mask = Integer.parseInt(strs[1]); long maskAsLong = 0xffffffff << (32 - mask); minIpAsLong = ip.toLong(); maxIpAsLong = minIpAsLong | (~maskAsLong); } else { throw new IllegalArgumentException( "The input String format error. For example" + " 192.168.1.1/24"); } return new IPRange(new IP(minIpAsLong), new IP(maxIpAsLong)); }
/** * Creates a {@link IPRange} instance by IP with mask. * * @param ipWithMask IP/mask, such as 192.168.70.1/24 * @return {@link IPRange} instance */ public static IPRange parseFromIPWithMask(String ipWithMask) { long minIpAsLong = 0; long maxIpAsLong = 0; String[] strs = ipWithMask.split("/"); if (strs.length == 2) { IP ip = IP.parseFromString(strs[0]); int mask = Integer.parseInt(strs[1]); long maskAsLong = 0xffffffff << (32 - mask); minIpAsLong = ip.toLong(); maxIpAsLong = minIpAsLong | (~maskAsLong); } else { throw new IllegalArgumentException( "The input String format error. For example" + " 192.168.1.1/24"); } return new IPRange(new IP(minIpAsLong), new IP(maxIpAsLong)); }