Module inet.ipaddr

Interface IPAddressRange

All Superinterfaces:
AddressComponentRange, AddressItem, AddressItemRange, Comparable<AddressItem>, Serializable
All Known Implementing Classes:
IPAddress, IPAddressSeqRange, IPv4Address, IPv4AddressSeqRange, IPv6Address, IPv6AddressSeqRange

public interface IPAddressRange extends AddressComponentRange
Represents a range of IP addresses
Author:
seancfoley
  • Method Details

    • contains

      boolean contains(IPAddressSeqRange other)
      Returns whether this range contains all addresses in the given sequential range
      Parameters:
      other -
      Returns:
    • contains

      boolean contains(IPAddress other)
      Returns whether this range contains all addresses in the given address or subnet
      Parameters:
      other -
      Returns:
    • getLower

      IPAddress getLower()
      Returns the address in the range with the lowest numeric value.
      Specified by:
      getLower in interface AddressComponentRange
      Returns:
    • getUpper

      IPAddress getUpper()
      Returns the address in the range with the highest numeric value.
      Specified by:
      getUpper in interface AddressComponentRange
      Returns:
    • getIterable

      Iterable<? extends IPAddress> getIterable()
      Useful for using an instance in a "for-each loop", as in for(addr : address.getIterable()) { ... }

      Otherwise just call iterator() directly.

      Specified by:
      getIterable in interface AddressComponentRange
      Returns:
    • iterator

      Iterator<? extends IPAddress> iterator()
      Iterates through the individual addresses of this address or subnet.

      Call AddressItem.isMultiple() to determine if this instance represents multiple, or AddressItem.getCount() for the count.

      Specified by:
      iterator in interface AddressComponentRange
      Returns:
    • spliterator

      AddressComponentRangeSpliterator<? extends IPAddressRange,? extends IPAddress> spliterator()
      Partitions and traverses through the individual addresses.
      Specified by:
      spliterator in interface AddressComponentRange
      Returns:
    • prefixBlockIterator

      Iterator<? extends IPAddress> prefixBlockIterator(int prefLength)
      Iterates through the range of prefix blocks in this range instance using the given prefix length.
      Parameters:
      prefLength -
      Returns:
    • prefixBlockSpliterator

      AddressComponentRangeSpliterator<? extends IPAddressRange,? extends IPAddress> prefixBlockSpliterator(int prefLength)
      Partitions and traverses through the individual prefix blocks for the given prefix length.
      Returns:
    • prefixBlockStream

      Stream<? extends IPAddress> prefixBlockStream(int prefLength)
      Returns a sequential stream of the prefix blocks for the given prefix length. For a parallel stream, call BaseStream.parallel() on the returned stream.
      Returns:
    • prefixIterator

      Iterator<? extends IPAddressRange> prefixIterator(int prefixLength)
      Iterates through the range of prefixes in this range instance using the given prefix length.
      Parameters:
      prefixLength -
      Returns:
    • prefixSpliterator

      AddressComponentSpliterator<? extends IPAddressRange> prefixSpliterator(int prefLength)
      Partitions and traverses through the individual prefixes for the given prefix length.
      Returns:
    • prefixStream

      Stream<? extends IPAddressRange> prefixStream(int prefLength)
      Returns a sequential stream of the individual prefixes for the given prefix length. For a parallel stream, call BaseStream.parallel() on the returned stream.
      Returns:
    • coverWithPrefixBlock

      IPAddress coverWithPrefixBlock()
      Returns the minimal-size prefix block that covers all the addresses in this range. The resulting block will have a larger address count than this range, unless this range is already a prefix block.
    • spanWithPrefixBlocks

      IPAddress[] spanWithPrefixBlocks()
      Produces an array of prefix blocks that spans the same set of addresses.
    • spanWithSequentialBlocks

      IPAddress[] spanWithSequentialBlocks()
      Produces an array of blocks that are sequential that cover the same set of addresses. This array can be shorter than that produced by spanWithPrefixBlocks() and is never longer.
    • isSequential

      boolean isSequential()
      Returns whether this range represents a range of values that are sequential.
      Returns:
    • toSequentialRange

      IPAddressSeqRange toSequentialRange()
      Converts to a sequential range from the lowest and highest addresses in this range, returns "this" if one already

      The result will represent the same set of addresses if and only if isSequential() is true

    • toNormalizedString

      String toNormalizedString()
      Produces a string that is unique and consistent for all instances.
      Returns:
    • toCanonicalString

      String toCanonicalString()
      Produces a string that is unique and uses the canonical representation for all instances.
      Returns: