/** * 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; }
/** * Returns <code>true</code> if the IP is local IP address. * * @return <code>true</code> if the IP is local IP address. */ public boolean isLocalIP() { return IPRange.AClassLocalIPRange().contains(this) || IPRange.BClassLocalIPRange().contains(this) || IPRange.CClassLocalIPRange().contains(this); }
/** * Constructs an instance of {@link IPIterator} with a {@link IPRange}. * * @param range IP address range. */ public IPIterator(IPRange range) { this.range = range; currentIP = range.getStartIP(); }
/** * 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; }
@Override public boolean equals(Object obj) { if (obj instanceof IPRange) { IPRange range = (IPRange) obj; return range.getStartIP().equals(startIP) && range.getEndIP().equals(endIP); } else { return false; } }
public boolean contains(SocketAddress address) { return address instanceof InetSocketAddress && contains( ((InetSocketAddress) address).getAddress()); }
@Override public int hashCode() { return toString().hashCode(); }
/** * 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; }
@Override public boolean equals(Object obj) { if (obj instanceof IPRange) { IPRange range = (IPRange) obj; return range.getStartIP().equals(startIP) && range.getEndIP().equals(endIP); } else { return false; } }
public boolean contains(SocketAddress address) { return address instanceof InetSocketAddress && contains( ((InetSocketAddress) address).getAddress()); }
@Override public int hashCode() { return toString().hashCode(); }
/** * Returns <code>true</code> if the IP is local IP address. * * @return <code>true</code> if the IP is local IP address. */ public boolean isLocalIP() { return IPRange.AClassLocalIPRange().contains(this) || IPRange.BClassLocalIPRange().contains(this) || IPRange.CClassLocalIPRange().contains(this); }
/** * 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; }
public boolean contains(InetAddress address) { if (address instanceof Inet4Address) { IP ip = new IP(address.getAddress()); return contains(ip); } return false; }
/** * Constructs an instance of {@link IPIterator} with a {@link IPRange}. * * @param range IP address range. */ public IPIterator(IPRange range) { this.range = range; currentIP = range.getStartIP(); }
/** * 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])); }
@Override public boolean hasNext() { if (start) { return true; } else { return range.contains(currentIP.nextIP()); } }
/** * 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])); }
@Override public boolean hasNext() { if (start) { return true; } else { return range.contains(currentIP.nextIP()); } }
/** * 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)); }