public abstract class IPAddress extends Address implements IPAddressSegmentSeries
IPAddress objects are immutable and cannot change values. This also makes them thread-safe.
String creation:
There are several public classes used to customize IP address strings.
For single strings from an address or address section, you use IPAddressSection.IPStringOptions or IPv6AddressSection.IPv6StringOptions along with toNormalizedString(IPAddressSection.IPStringOptions).
Or you use one of the methods like Address.toCanonicalString() which does the same.
For string collections from an address or address section, use IPv4AddressSection.IPv4StringBuilderOptions, IPv6AddressSection.IPv6StringBuilderOptions, IPAddressSection.IPStringBuilderOptions along with toStringCollection(IPAddressSection.IPStringBuilderOptions) or toStrings(IPAddressSection.IPStringBuilderOptions).
Or you use one of the methods toStandardStringCollection(), toAllStringCollection(), toStandardStrings(), toAllStrings() which does the same.
| Modifier and Type | Class and Description |
|---|---|
static class |
IPAddress.IPVersion |
Address.AddressProvider, Address.SegmentValueProvider| Modifier and Type | Field and Description |
|---|---|
static IPAddressConverter |
DEFAULT_ADDRESS_CONVERTER
The default way by which addresses are converted, initialized to an instance of
IPAddressConverter.DefaultAddressConverter |
static char |
PREFIX_LEN_SEPARATOR |
ALTERNATIVE_RANGE_SEPARATOR, ALTERNATIVE_RANGE_SEPARATOR_STR, ALTERNATIVE_SEGMENT_WILDCARD_STR, DEFAULT_ADDRESS_COMPARATOR, HEX_PREFIX, OCTAL_PREFIX, RANGE_SEPARATOR, RANGE_SEPARATOR_STR, SEGMENT_SQL_SINGLE_WILDCARD, SEGMENT_SQL_SINGLE_WILDCARD_STR, SEGMENT_SQL_WILDCARD, SEGMENT_SQL_WILDCARD_STR, SEGMENT_WILDCARD, SEGMENT_WILDCARD_STR| Modifier and Type | Method and Description |
|---|---|
abstract IPAddress |
adjustPrefixBySegment(boolean nextSegment)
Increases or decreases prefix length to the next segment boundary.
|
abstract IPAddress |
adjustPrefixLength(int adjustment)
Increases or decreases prefix length by the given increment.
|
abstract IPAddress |
applyPrefixLength(int networkPrefixLength)
Applies the given prefix length to create a new segment series.
|
IPAddress |
assignMinPrefixForBlock()
Constructs an equivalent address with the smallest CIDR prefix possible (largest network),
such that the range of values are a set of subnet blocks for that prefix.
|
IPAddress |
assignPrefixForSingleBlock()
Returns the equivalent CIDR address with a prefix length for which the address subnet block matches the range of values in this address.
|
abstract IPAddress |
bitwiseOr(IPAddress mask)
Equivalent to calling
bitwiseOr(IPAddress, boolean) with the second argument as false. |
abstract IPAddress |
bitwiseOr(IPAddress mask,
boolean retainPrefix)
Does the bitwise disjunction with this address.
|
abstract IPAddress |
bitwiseOrNetwork(IPAddress mask,
int networkPrefixLength)
Does the bitwise disjunction with this address.
|
boolean |
contains(Address other) |
boolean |
contains(IPAddress other) |
static int |
getBitCount(IPAddress.IPVersion version) |
int |
getBitsPerSegment()
Returns the number of bits comprising each segment in this series.
|
static int |
getBitsPerSegment(IPAddress.IPVersion version) |
java.lang.Integer |
getBlockMaskPrefixLength(boolean network)
If this address is equivalent to the mask for a CIDR prefix block, it returns that prefix length.
|
int |
getByteCount()
returns the number of bytes in each of the address components represented by this instance
|
static int |
getByteCount(IPAddress.IPVersion version) |
int |
getBytesPerSegment()
Returns the number of bytes comprising each segment in this series.
|
IPAddress.IPVersion |
getIPVersion()
Returns the version of this segment series
|
abstract java.lang.Iterable<? extends IPAddress> |
getIterable()
Useful for using an instance in a "for-each loop".
|
abstract IPAddress |
getLower()
If this represents a series with ranging values, returns a series representing the lower values of the range.
|
abstract IPAddress |
getLowerNonZeroHost()
Similar to
IPAddressSegmentSeries.getLower(), but will not return a series that has a prefix length and whose host value is zero. |
void |
getMatchesSQLClause(java.lang.StringBuilder builder,
java.lang.String sqlExpression)
Returns a clause for matching this address.
|
void |
getMatchesSQLClause(java.lang.StringBuilder builder,
java.lang.String sqlExpression,
IPAddressSQLTranslator translator)
Returns a clause for matching this address.
|
int |
getMaxSegmentValue() |
static int |
getMaxSegmentValue(IPAddress.IPVersion version) |
abstract IPAddressNetwork<?,?,?,?,?> |
getNetwork()
Returns the network object for series of the same version (eg IPv4, IPv6 and MAC each have their own network object)
|
java.lang.Integer |
getNetworkPrefixLength()
Returns the CIDR network prefix length of the series, or null if the series has no associated prefix length.
|
java.math.BigInteger |
getNonZeroHostCount()
Gets the count of single value series that this series may represent.
|
IPAddressStringDivisionSeries[] |
getParts(IPAddressSection.IPStringBuilderOptions options)
Returns all the ways of breaking this address down into segments, as selected.
|
IPAddressSection |
getSection()
Returns the address as an address section comprising all segments in the address.
|
IPAddressSection |
getSection(int index)
Gets the subsection from the series starting from the given index
|
IPAddressSection |
getSection(int index,
int endIndex)
Gets the subsection from the series starting from the given index and ending just before the give endIndex
|
IPAddressSegment |
getSegment(int index)
Returns the segment from this series at the given index.
|
static int |
getSegmentCount(IPAddress.IPVersion version) |
IPAddressSegment[] |
getSegments()
Returns the segments of this series of segments as an array.
|
abstract IPAddress |
getUpper()
If this represents a series with ranging values, returns a series representing the upper values of the range
If this represents a series with a single value in each segment, returns this.
|
boolean |
includesZeroHost() |
abstract IPAddress |
intersect(IPAddress other)
Produces the subnet whose addresses are found in both this and the given subnet argument.
|
boolean |
isAnyLocal() |
boolean |
isIPv4() |
abstract boolean |
isIPv4Convertible()
Determines whether this address can be converted to IPv4, if not IPv4 already.
|
boolean |
isIPv6() |
abstract boolean |
isIPv6Convertible()
Determines whether an address can be converted to IPv6, if not IPv6 already.
|
abstract boolean |
isLinkLocal() |
boolean |
isLocal() |
abstract boolean |
isLoopback() |
boolean |
isSameAddress(IPAddress other) |
abstract boolean |
isSiteLocal() |
abstract java.util.Iterator<? extends IPAddress> |
iterator()
Iterates through the individual segment series.
|
abstract IPAddress |
mask(IPAddress mask)
Equivalent to calling
mask(IPAddress, boolean) with the second argument as false. |
abstract IPAddress |
mask(IPAddress mask,
boolean retainPrefix)
Applies the given mask to all addresses represented by this IPAddress.
|
abstract IPAddress |
maskNetwork(IPAddress mask,
int networkPrefixLength)
Applies the given mask to all addresses represented by this IPAddress while also applying the given prefix length at the same time.
|
boolean |
matches(IPAddressString otherString) |
abstract java.util.Iterator<? extends IPAddress> |
nonZeroHostIterator() |
abstract IPAddress |
removePrefixLength()
Removes the prefix length.
|
abstract IPAddress |
removePrefixLength(boolean zeroed)
Removes the prefix length.
|
abstract IPAddress |
reverseBits(boolean perByte)
Returns a new segment series with the bits reversed.
|
abstract IPAddress |
reverseBytes()
Returns a new segment series with the bytes reversed.
|
abstract IPAddress |
reverseBytesPerSegment()
Returns a new segment series with the bytes reversed within each segment.
|
abstract IPAddress |
reverseSegments()
Returns a new segment series with the segments reversed.
|
abstract java.util.Iterator<? extends IPAddressSegment[]> |
segmentsIterator()
Iterates through the individual segments.
|
abstract java.util.Iterator<? extends IPAddressSegment[]> |
segmentsNonZeroHostIterator() |
abstract IPAddress |
setPrefixLength(int prefixLength)
Sets the prefix length.
|
abstract IPAddress |
setPrefixLength(int prefixLength,
boolean zeroed)
Sets the prefix length.
|
abstract IPAddress[] |
subtract(IPAddress other)
Subtract the given subnet from this subnet, returning an array of subnets for the result (the subnets will not be contiguous so an array is required).
|
IPAddressString |
toAddressString()
Generates an IPAddressString object for this IPAddress object.
|
IPAddressPartStringCollection |
toAllStringCollection() |
java.lang.String[] |
toAllStrings()
Produces almost all possible string variations
|
java.lang.String |
toBinaryString()
Writes this address as a single binary value with always the exact same number of characters
|
HostName |
toCanonicalHostName()
Does a reverse name lookup to get the canonical host name.
|
java.lang.String |
toCanonicalWildcardString()
This produces a string similar to the canonical string but avoids the CIDR prefix.
|
java.lang.String |
toCompressedWildcardString()
This is similar to toNormalizedWildcardString, avoiding the CIDR prefix, but with compression as well.
|
java.lang.String |
toConvertedString()
Returns a mixed string if it represents a convertible IPv4 address, returns the normalized string otherwise.
|
static java.lang.String |
toDelimitedSQLStrs(java.lang.String[] strs) |
java.lang.String |
toFullString()
This produces a string with no compressed segments and all segments of full length,
which is 4 characters for IPv6 segments and 3 characters for IPv4 segments.
|
HostName |
toHostName()
If this address was resolved from a host, returns that host.
|
java.net.InetAddress |
toInetAddress()
Converts the lowest value of this address to an InetAddress
|
IPv4Address |
toIPv4()
If this address is IPv4, or can be converted to IPv4, returns that
IPv4Address. |
IPv6Address |
toIPv6() |
java.lang.String |
toNormalizedString(IPAddressSection.IPStringOptions params)
Constructs a string representing this address according to the given parameters
|
java.lang.String |
toNormalizedWildcardString()
This produces a string similar to the normalized string but avoids the CIDR prefix.
|
java.lang.String |
toOctalString(boolean with0Prefix)
Writes this address as a single octal value with always the exact same number of characters, with or without a preceding 0 prefix.
|
abstract IPAddress |
toPrefixBlock()
If this series has a prefix length, returns the block for that prefix.
|
abstract IPAddress |
toPrefixBlock(int networkPrefixLength)
Returns the segment series of the same length that spans all hosts.
|
java.lang.String |
toPrefixLengthString()
Returns a string with a CIDR network prefix length if this address has a network prefix length.
|
java.lang.String |
toReverseDNSLookupString()
Generates the reverse DNS lookup string
|
java.lang.String |
toSQLWildcardString()
This is the same as the string from toNormalizedWildcardString except that
it uses
Address.SEGMENT_SQL_WILDCARD instead of Address.SEGMENT_WILDCARD and also uses Address.SEGMENT_SQL_SINGLE_WILDCARD |
IPAddressPartStringCollection |
toStandardStringCollection() |
java.lang.String[] |
toStandardStrings()
Returns at most a few dozen string representations:
-mixed (1:2:3:4:5:6:1.2.3.4)
-full compressions (a:0:b:c:d:0:e:f or a::b:c:d:0:e:f or a:0:b:c:d::e:f)
-full leading zeros (000a:0000:000b:000c:000d:0000:000e:000f)
-all uppercase and all lowercase (a::a can be A::A)
-combinations thereof
|
IPAddressPartStringCollection |
toStringCollection(IPAddressSection.IPStringBuilderOptions options) |
java.lang.String[] |
toStrings(IPAddressSection.IPStringBuilderOptions options)
Rather than using toAllStrings or StandardStrings,
you can use this method to customize the list of strings produced for this address
|
java.lang.String |
toSubnetString()
Produces a consistent subnet string that looks like 1.2.*.* or 1:2::/16
In the case of IPv4, this means that wildcards are used instead of a network prefix when a network prefix has been supplied.
|
abstract java.lang.String |
toUNCHostName()
Generates the Microsoft UNC path component for this address
|
java.net.InetAddress |
toUpperInetAddress()
Converts the highest value of this address to an InetAddress.
|
compareTo, defaultIpv4Network, defaultIpv6Network, defaultMACNetwork, equals, getBitCount, getBytes, getBytes, getCount, getDivision, getDivisionCount, getDivisionStrings, getMinPrefixLengthForBlock, getPrefixLength, getPrefixLengthForSingleBlock, getSegmentCount, getSegments, getSegments, getSegmentStrings, getUpperBytes, getUpperBytes, getUpperValue, getValue, hashCode, isFullRange, isMore, isMulticast, isMultiple, isPrefixBlock, isPrefixed, isSameAddress, isSinglePrefixBlock, isZero, toCanonicalString, toCompressedString, toHexString, toNormalizedString, toStringgetHostSection, getHostSection, getNetworkSection, getNetworkSection, getNetworkSectiongetSegmentCount, getSegments, getSegments, getSegmentStrings, toCanonicalString, toCompressedStringgetDivision, getDivisionStrings, getMinPrefixLengthForBlock, getPrefixLength, getPrefixLengthForSingleBlock, getUpperValue, getValue, isMore, isPrefixBlock, isPrefixed, isSinglePrefixBlockgetDivisionCounttoHexString, toNormalizedStringgetBitCount, getBytes, getBytes, getCount, getUpperBytes, getUpperBytes, isFullRange, isMultiple, isZeropublic static final char PREFIX_LEN_SEPARATOR
public static final IPAddressConverter DEFAULT_ADDRESS_CONVERTER
IPAddressConverter.DefaultAddressConverterpublic HostName toHostName()
public HostName toCanonicalHostName()
public abstract IPAddressNetwork<?,?,?,?,?> getNetwork()
AddressSegmentSeriesgetNetwork in interface AddressSegmentSeriesgetNetwork in interface IPAddressSegmentSeriespublic IPAddressSection getSection()
getSection in class Addresspublic IPAddressSection getSection(int index)
AddressSegmentSeriesgetSection in interface AddressSegmentSeriesgetSection in interface IPAddressSegmentSeriesgetSection in class Addresspublic IPAddressSection getSection(int index, int endIndex)
AddressSegmentSeriesgetSection in interface AddressSegmentSeriesgetSection in interface IPAddressSegmentSeriesgetSection in class Addresspublic IPAddressStringDivisionSeries[] getParts(IPAddressSection.IPStringBuilderOptions options)
public int getMaxSegmentValue()
getMaxSegmentValue in class Addresspublic static int getMaxSegmentValue(IPAddress.IPVersion version)
public java.math.BigInteger getNonZeroHostCount()
IPAddressSegmentSeriesAddressItem.getCount().getNonZeroHostCount in interface IPAddressSegmentSeriespublic int getBytesPerSegment()
AddressSegmentSeriesgetBytesPerSegment in interface AddressSegmentSeriespublic int getBitsPerSegment()
AddressSegmentSeriesgetBitsPerSegment in interface AddressSegmentSeriespublic static int getBitsPerSegment(IPAddress.IPVersion version)
public int getByteCount()
AddressComponentgetByteCount in interface AddressComponentgetByteCount in class Addresspublic static int getByteCount(IPAddress.IPVersion version)
public static int getSegmentCount(IPAddress.IPVersion version)
public static int getBitCount(IPAddress.IPVersion version)
public IPAddressSegment getSegment(int index)
AddressSegmentSeriesgetSegment in interface AddressSegmentSeriesgetSegment in interface IPAddressSegmentSeriesgetSegment in class Addresspublic IPAddressSegment[] getSegments()
AddressSegmentSeriesAddressSegmentSeries.getSegment(int) and AddressSegmentSeries.getSegmentCount() instead when feasible.getSegments in interface AddressSegmentSeriesgetSegments in interface IPAddressSegmentSeriesgetSegments in class Addresspublic abstract IPAddress getLowerNonZeroHost()
IPAddressSegmentSeriesIPAddressSegmentSeries.getLower(), but will not return a series that has a prefix length and whose host value is zero.
If this series has no prefix length, returns the same series as IPAddressSegmentSeries.getLower().getLowerNonZeroHost in interface IPAddressSegmentSeriespublic abstract IPAddress getLower()
AddressSegmentSeriesgetLower in interface AddressComponentgetLower in interface AddressSegmentSeriesgetLower in interface IPAddressSegmentSeriesgetLower in class Addresspublic abstract IPAddress getUpper()
AddressSegmentSeriesgetUpper in interface AddressComponentgetUpper in interface AddressSegmentSeriesgetUpper in interface IPAddressSegmentSeriesgetUpper in class Addresspublic abstract IPAddress reverseBits(boolean perByte)
AddressSegmentSeriesreverseBits in interface AddressComponentreverseBits in interface AddressSegmentSeriesreverseBits in interface IPAddressSegmentSeriesreverseBits in class AddressperByte - if true, only the bits in each byte are reversed, if false, then all bits in the component are reversedpublic abstract IPAddress reverseBytes()
AddressSegmentSeriesreverseBytes in interface AddressComponentreverseBytes in interface AddressSegmentSeriesreverseBytes in interface IPAddressSegmentSeriesreverseBytes in class Addresspublic abstract IPAddress reverseBytesPerSegment()
AddressSegmentSeriesreverseBytesPerSegment in interface AddressSegmentSeriesreverseBytesPerSegment in interface IPAddressSegmentSeriesreverseBytesPerSegment in class Addresspublic abstract IPAddress reverseSegments()
AddressSegmentSeriesIncompatibleAddressException since all address series can reverse their segments.reverseSegments in interface AddressSegmentSeriesreverseSegments in interface IPAddressSegmentSeriesreverseSegments in class Addresspublic abstract java.util.Iterator<? extends IPAddress> iterator()
AddressSegmentSeriesiterator in interface AddressComponentiterator in interface AddressSegmentSeriesiterator in interface IPAddressSegmentSeriesiterator in class Addresspublic abstract java.util.Iterator<? extends IPAddress> nonZeroHostIterator()
nonZeroHostIterator in interface IPAddressSegmentSeriespublic abstract java.util.Iterator<? extends IPAddressSegment[]> segmentsIterator()
AddressSegmentSeriessegmentsIterator in interface AddressSegmentSeriessegmentsIterator in interface IPAddressSegmentSeriessegmentsIterator in class Addresspublic abstract java.util.Iterator<? extends IPAddressSegment[]> segmentsNonZeroHostIterator()
segmentsNonZeroHostIterator in interface IPAddressSegmentSeriespublic abstract java.lang.Iterable<? extends IPAddress> getIterable()
AddressComponentAddressComponent.iterator() directly.getIterable in interface AddressComponentgetIterable in interface AddressSegmentSeriesgetIterable in interface IPAddressSegmentSeriesgetIterable in class Addresspublic boolean isIPv4()
public boolean isIPv6()
public IPAddress.IPVersion getIPVersion()
IPAddressSegmentSeriesgetIPVersion in interface IPAddressSegmentSeriespublic IPv4Address toIPv4()
IPv4Address. Otherwise, returns null.isIPv4Convertible()public IPv6Address toIPv6()
IPv6Address. Otherwise, returns null.public abstract boolean isIPv4Convertible()
toIPv4() to match the conversion.
This method returns true for all IPv4 addresses.public abstract boolean isIPv6Convertible()
toIPv6() to match the conversion.
This method returns true for all IPv6 addresses.public abstract boolean isLinkLocal()
InetAddress.isLinkLocalAddress()public abstract boolean isSiteLocal()
InetAddress.isSiteLocalAddress()public boolean isAnyLocal()
InetAddress.isAnyLocalAddress()public abstract boolean isLoopback()
InetAddress.isLoopbackAddress()public java.net.InetAddress toUpperInetAddress()
toInetAddress()public java.net.InetAddress toInetAddress()
public boolean matches(IPAddressString otherString)
public boolean isSameAddress(IPAddress other)
public boolean contains(IPAddress other)
other - public java.lang.String toFullString()
toFullString in interface IPAddressSegmentSeriespublic java.lang.String toSubnetString()
toSubnetString in interface IPAddressSegmentSeriespublic java.lang.String toNormalizedWildcardString()
toNormalizedWildcardString in interface IPAddressSegmentSeriespublic java.lang.String toCanonicalWildcardString()
toCanonicalWildcardString in interface IPAddressSegmentSeriespublic java.lang.String toCompressedWildcardString()
toCompressedWildcardString in interface IPAddressSegmentSeriespublic java.lang.String toSQLWildcardString()
Address.SEGMENT_SQL_WILDCARD instead of Address.SEGMENT_WILDCARD and also uses Address.SEGMENT_SQL_SINGLE_WILDCARDtoSQLWildcardString in interface IPAddressSegmentSeriespublic java.lang.String toPrefixLengthString()
toPrefixLengthString in interface IPAddressSegmentSeriespublic java.lang.String toConvertedString()
public abstract java.lang.String toUNCHostName()
public java.lang.String toReverseDNSLookupString()
For 8.255.4.4 it is 4.4.255.8.in-addr.arpa
For 2001:db8::567:89ab it is b.a.9.8.7.6.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa
toReverseDNSLookupString in interface IPAddressSegmentSeriesIncompatibleAddressException - if this address is a subnetpublic java.lang.String toBinaryString()
If this section represents a range of values not corresponding to a prefix, then this is printed as a range of two hex values.
toBinaryString in interface IPAddressSegmentSeriespublic java.lang.String toOctalString(boolean with0Prefix)
If this section represents a range of values not corresponding to a prefix, then this is printed as a range of two hex values.
toOctalString in interface IPAddressSegmentSeriespublic java.lang.String toNormalizedString(IPAddressSection.IPStringOptions params)
toNormalizedString in interface IPAddressSegmentSeriesparams - the parameters for the address stringIncompatibleAddressException - for cases in which the requested string cannot be produced, which can generally only occur with specific strings from specific subnets.public java.lang.String[] toStandardStrings()
public java.lang.String[] toAllStrings()
Use this method with care... a single IPv6 address can have thousands of string representations.
Examples:
Variations included in this method:
toStandardStrings()public java.lang.String[] toStrings(IPAddressSection.IPStringBuilderOptions options)
public IPAddressPartStringCollection toStandardStringCollection()
public IPAddressPartStringCollection toAllStringCollection()
public IPAddressPartStringCollection toStringCollection(IPAddressSection.IPStringBuilderOptions options)
toStringCollection in interface IPAddressSegmentSeriespublic IPAddressString toAddressString()
This same IPAddress object can be retrieved from the resulting IPAddressString object using IPAddressString.getAddress()
In general, users are intended to create IPAddress objects from IPAddressString objects, while the reverse direction is generally not all that useful.
However, the reverse direction can be useful under certain circumstances.
Not all IPAddressString objects can be converted to IPAddress objects, as is the case with IPAddressString objects corresponding to the types IPType.INVALID and IPType.EMPTY.
Not all IPAddressString objects can be converted to IPAddress objects without specifying the IP version, as is the case with IPAddressString objects corresponding to the types IPType.PREFIX and IPType.ALL.
So in the event you wish to store a collection of IPAddress objects with a collection of IPAddressString objects, and not all the IPAddressString objects can be converted to IPAddress objects, then you may wish to use a collection of only IPAddressString objects, in which case this method is useful.
toAddressString in class Addresspublic static java.lang.String toDelimitedSQLStrs(java.lang.String[] strs)
public java.lang.Integer getNetworkPrefixLength()
IPAddressSegmentSeries
Equivalent to AddressDivisionSeries.getPrefixLength(),
which is the more general concept of set of address series that share the same set of leading bits.
For IP addresses and sections the prefix length and the CIDR network prefix length are the same thing.
For IP addresses and sections each individual segment has an associated prefix length which is determine by the network prefix length. The segment prefix lengths follow the pattern: null, null, ...., null, x, 0, 0, ..., 0
For instance, an IPv4 address 1.2.3.4/16 has the network prefix length 16. The segment prefix lengths are [null, 8, 0, 0] The segment prefix lengths of 1.2.3.4/22 are [null, null, 6, 0]
getNetworkPrefixLength in interface IPAddressSegmentSeriespublic boolean includesZeroHost()
public abstract IPAddress toPrefixBlock()
AddressSegmentSeriestoPrefixBlock in interface AddressSegmentSeriestoPrefixBlock in interface IPAddressSegmentSeriestoPrefixBlock in class Addresspublic abstract IPAddress toPrefixBlock(int networkPrefixLength) throws PrefixLenException
IPAddressSegmentSeriestoPrefixBlock in interface IPAddressSegmentSeriesPrefixLenExceptionpublic IPAddress assignPrefixForSingleBlock()
If no such prefix length exists, returns null.
Examples:
1.2.3.4 returns 1.2.3.4/32
1.2.*.* returns 1.2.0.0/16
1.2.*.0/24 returns 1.2.0.0/16
1.2.*.4 returns null
1.2.252-255.* returns 1.2.252.0/22
1.2.3.4/x returns the same address
assignPrefixForSingleBlock in interface IPAddressSegmentSeriesIPAddressSegmentSeries.toPrefixBlock(),
IPAddressSegmentSeries.assignMinPrefixForBlock()public IPAddress assignMinPrefixForBlock()
assignMinPrefixForBlock in interface IPAddressSegmentSeriesIPAddressSegmentSeries.toPrefixBlock(),
IPAddressSegmentSeries.assignPrefixForSingleBlock()public java.lang.Integer getBlockMaskPrefixLength(boolean network)
network - whether to check if we are a network mask or a host maskpublic abstract IPAddress intersect(IPAddress other)
This is also known as the conjunction of the two sets of addresses.
If the address is not the same version, the default conversion will be applied using (toIPv4() or toIPv6(), and it that fails, AddressConversionException will be thrown.
other - AddressConversionException - if the address argument could not be converted to the same address version as thispublic abstract IPAddress[] subtract(IPAddress other)
Computes the subnet difference, the set of addresses in this address subnet but not in the provided subnet. This is also known as the relative complement of the given argument in this subnet.
If the address is not the same version, the default conversion will be applied using (toIPv4() or toIPv6(), and it that fails, AddressConversionException will be thrown.
other - AddressConversionException - if the address argument could not be converted to the same address version as thispublic abstract IPAddress mask(IPAddress mask) throws AddressConversionException, IncompatibleAddressException
mask(IPAddress, boolean) with the second argument as false.
If the mask is a different version than this, then the default conversion is applied first using (toIPv4() or toIPv6()
mask - IncompatibleAddressException - if this is a range of addresses and applying the mask results in an address that cannot be represented as a contiguous range within each segmentAddressConversionException - if the address argument could not be converted to the same address version as thispublic abstract IPAddress mask(IPAddress mask, boolean retainPrefix) throws AddressConversionException, IncompatibleAddressException
If the mask is a different version than this, then the default conversion is applied first using (toIPv4() or toIPv6()
If this represents multiple addresses, and applying the mask to all addresses creates a set of addresses
that cannot be represented as a contiguous range within each segment, then IncompatibleAddressException is thrown.
mask - IncompatibleAddressException - if this is a range of addresses and applying the mask results in an address that cannot be represented as a contiguous range within each segmentAddressConversionException - if the address argument could not be converted to the same address version as thispublic abstract IPAddress maskNetwork(IPAddress mask, int networkPrefixLength) throws AddressConversionException, IncompatibleAddressException
Any existing prefix length is removed as the mask and new prefix length is applied to all individual addresses.
If the mask is a different version than this, then the default conversion is applied first using (toIPv4() or toIPv6()
If this represents multiple addresses, and applying the mask to all addresses creates a set of addresses
that cannot be represented as a contiguous range within each segment, then IncompatibleAddressException is thrown.
IncompatibleAddressException - if this is a range of addresses and applying the mask results in an address that cannot be represented as a contiguous range within each segmentAddressConversionException - if the address argument could not be converted to the same address version as thispublic abstract IPAddress bitwiseOr(IPAddress mask) throws AddressConversionException, IncompatibleAddressException
bitwiseOr(IPAddress, boolean) with the second argument as false.
If the mask is a different version than this, then the default conversion is applied first using (toIPv4() or toIPv6()
mask - AddressConversionException - if the address argument could not be converted to the same address version as thisIncompatibleAddressException - if this is a range of addresses and applying the mask results in an address that cannot be represented as a contiguous range within each segmentpublic abstract IPAddress bitwiseOr(IPAddress mask, boolean retainPrefix) throws AddressConversionException, IncompatibleAddressException
The mask is applied to all individual addresses, similar to how the mask(IPAddress) method which does the bitwise conjunction.
If the retainPrefix argument is true, then any existing prefix length is removed beforehand.
If the mask is a different version than this, then the default conversion is applied first using (toIPv4() or toIPv6()
If you wish to mask a portion of the network, use bitwiseOrNetwork(IPAddress, int)
For instance, you can get the broadcast address for a subnet as follows:
String addrStr = "1.2.3.4/16";
IPAddress address = new IPAddressString(addrStr).getAddress();
IPAddress hostMask = address.getNetwork().getHostMask(address.getNetworkPrefixLength());//0.0.255.255
IPAddress broadcastAddress = address.bitwiseOr(hostMask); //1.2.255.255
mask - retainPrefix - AddressConversionException - if the address argument could not be converted to the same address version as thisIncompatibleAddressException - if this is a range of addresses and applying the mask results in an address that cannot be represented as a contiguous range within each segmentpublic abstract IPAddress bitwiseOrNetwork(IPAddress mask, int networkPrefixLength) throws AddressConversionException, IncompatibleAddressException
If the mask is a different version than this, then the default conversion is applied first using (toIPv4() or toIPv6()
Any existing prefix length is dropped for the new prefix length and the mask is applied up to the end the new prefix length.
It is similar to how the maskNetwork(IPAddress, int) method does the bitwise conjunction.
mask - networkPrefixLength - the new prefix length for the addressIncompatibleAddressException - if this is a range of addresses and applying the mask results in an address that cannot be represented as a contiguous range within each segmentAddressConversionException - if the address argument could not be converted to the same address version as thispublic abstract IPAddress removePrefixLength()
AddressSegmentSeriesIf the series already has a prefix length, the bits previously not within the prefix become zero.
removePrefixLength in interface AddressSegmentSeriesremovePrefixLength in interface IPAddressSegmentSeriesremovePrefixLength in class Addresspublic abstract IPAddress removePrefixLength(boolean zeroed)
IPAddressSegmentSeriesIPAddressSegmentSeries.removePrefixLength()removePrefixLength in interface IPAddressSegmentSeriespublic abstract IPAddress adjustPrefixBySegment(boolean nextSegment)
AddressSegmentSeriesWhen prefix length is increased, the bits moved within the prefix become zero. When a prefix length is decreased, whether the bits moved outside the prefix become zero is dependent on the address type.
adjustPrefixBySegment in interface AddressSegmentSeriesadjustPrefixBySegment in interface IPAddressSegmentSeriesadjustPrefixBySegment in class Addresspublic abstract IPAddress adjustPrefixLength(int adjustment)
AddressSegmentSeriesWhen prefix length is increased, the bits moved within the prefix become zero. When the prefix is extended beyond the segment series boundary, it is removed. When a prefix length is decreased, whether the bits moved outside the prefix become zero is dependent on the address type.
adjustPrefixLength in interface AddressSegmentSeriesadjustPrefixLength in interface IPAddressSegmentSeriesadjustPrefixLength in class Addresspublic abstract IPAddress setPrefixLength(int prefixLength)
AddressSegmentSeriesIf this series has a prefix length, and the prefix length is increased, the bits moved within the prefix become zero.
When the prefix is extended beyond the segment series boundary, it is removed.
When a prefix length is decreased, whether the bits moved outside the prefix become zero is dependent on the address type.
setPrefixLength in interface AddressSegmentSeriessetPrefixLength in interface IPAddressSegmentSeriessetPrefixLength in class AddressAddressSegmentSeries.applyPrefixLength(int)public abstract IPAddress setPrefixLength(int prefixLength, boolean zeroed)
IPAddressSegmentSeriesIf zeroed is true, and this series has a prefix length, and the prefix length is increased, the bits moved within the prefix become zero. When a prefix length is decreased, whether the bits moved outside the prefix become zero is dependent on the address type.
When the prefix is extended beyond the segment series boundary, it is removed.
setPrefixLength in interface IPAddressSegmentSeriespublic abstract IPAddress applyPrefixLength(int networkPrefixLength)
AddressSegmentSeries
Similar to AddressSegmentSeries.setPrefixLength(int) except that prefix lengths are never increased.
When this series already has a prefix length that is less than or equal to the requested prefix length, this series is returned.
Otherwise the returned series has the given prefix length.
With some address types, the bits moved outside the prefix will become zero in the returned series.
applyPrefixLength in interface AddressSegmentSeriesapplyPrefixLength in interface IPAddressSegmentSeriesapplyPrefixLength in class AddressAddressSegmentSeries.setPrefixLength(int)public void getMatchesSQLClause(java.lang.StringBuilder builder,
java.lang.String sqlExpression)
If this address is a subnet, this method will attempt to match every address in the subnet. Therefore it is much more efficient to use getNetworkSection().getStartsWithSQLClause() for a CIDR subnet.
builder - sqlExpression - public void getMatchesSQLClause(java.lang.StringBuilder builder,
java.lang.String sqlExpression,
IPAddressSQLTranslator translator)
Similar to getMatchesSQLClause(StringBuilder builder, String sqlExpression) but allows you to tailor the SQL produced.
builder - sqlExpression - translator -