Releases: seancfoley/IPAddress
Releases · seancfoley/IPAddress
Version 5.6.1
Adjusts prefix lengths in containment tries for all individual addresses
Version 5.6.0
This version introduces new types for efficient IP address collections and set operations, along with a few other enhancements
- added
IPAddressSeqRangeList, a collection type backed by IP address ranges, offering binary search, an alternative to tries with potentially better CPU cache coherence when searching IPAddressSeqRangeListenables the arithmetic set operationsadd/join,intersect,remove, andcomplement- added the corresponding version-specific types
IPv4AddressSeqRangeListandIPv6AddressSeqRangeList - added
IPAddressContainmentTrie, an alternative collection option backed by CIDR prefix blocks in a trie, expanding on the existing trie functionality. - added the corresponding version-specific types
IPv4AddressContainmentTrieandIPv6AddressContainmentTrie - added the
IPAddressCollectioninterface representing collections of individual addresses, implemented by all range list and containment trie types - added the
IPAddressAggregationinterface representing all types which can represent a multitude of IP addresses, whether collections, ranges, or subnets - added new and optimized
increment(),decrement()andincrementBoundary()methods to the address types, more efficient thanincrement(1),increment(-1),incrementBoundary(1) - extended
increment(BigInteger)to the address/subnet typesIPAddressandIPv4Address, and not justIPV6Address, for easier polymorphism - added a
complementmethod toIPAddressreturning blocks, and acomplementmethod toIPAddressSeqRangereturning ranges, in addition to the complement method included withIPAddressSeqRangeList - added methods to
IPAddressSeqRangeto integrate withIPAddressSeqRangeListto create lists efficiently:subtractIntoList,joinIntoList,complementIntoList - added
intoSequentialRangeListmethods to IP address and sequential range classes for polymorphic and efficientIPAddressSeqRangeListcreation - added
intoContainmentTriemethods to IP address and range classes for polymorphicIPAddressContainmentTriecreation - added new trie types
IPAddressTrieandIPAddressAssociativeTrie, similar to existing types, but version-polymorphic, they can become either IPv4 or IPv6 tries, but not both at the same time - fixed an issue with merging addresses with prefixes into sequential blocks
Version 5.5.1
- added new merge functions
mergeToDualPrefixBlocksandmergeToDualSequentialBlocksfor combined IPv4/IPv6 merging - added public constructors accepting message strings to
AddressValueExceptionandIncompatibleAddressException, issue #127 - removed caching functionality from
containingFirstIterator, use all-nodecontainingFirstAllNodeIteratorinstead
Version 5.5.0
- added collection types for dual IPv4/v6 tries and for dual IPv4/v6 associative tries, issue #103
- trie performance improvements for all trie operations
- added
shortestPrefixMatchtrie methods - added
enumeratemethods, the inverse of theincrementmethods, to find the position of an address in a subnet, or to find the distance between two addresses - added an
incrementmethod accepting aBigIntegerargument toIPv6AddressandIPv6AddressSection - added the ability to construct an
IPv6Addressfrom two longs - added
replacemethods with address section parameter to address classes - added
overlapsmethods to check for overlapping subnets, and for checking sequential range overlap with a subnet - added
floor/lower/ceiling/highermethods to the address trie types, these methods previously accessible only from trie sets - added the extraneous digits IPv4 parsing option allow_inet_aton_extraneous_digits, issue #105.
- includes the fix to invalid radix argument infinite loop, issue #118
Version 5.4.2
Version 5.4.1
- fix to invalid radix argument infinite loop, issue #118
Version 5.4.0
- added
PrefixBlockAllocatorfor automatic CIDR prefix block allocation - added
AddedTreeandAssociativeAddedTreeclasses for expandedconstructAddedNodesTreemethods - added
getBlockSizeandgetBitsForCountinAddressItem - added
matchUnorderedandmatchOrderedinAddress - eliminated invalid
AddressValueExceptionwhen joining a range with the IPv4 max value to an IPv6 range, issue #86 - fix to generation of strings from parsed address data, issue #87
- fix to IPv4 address primitive int upper value generation, issue #96
Version 5.3.4
- a fix to avoid ClassCastException when converting IPv4-mapped address to java.net.Inet6Address, issue #73
- fixed the creation of HostName from an unresolved compressed-IPv6 socket address, issue #74
- added IPAddressString.isIPv4Mapped for issue #75
- fixed a class-loading issue with string parsing, issue #79
- removed AddressDivision.getDivisionValueCount() and AddressDivision.getDivisionPrefixCount(int) because of potential overflow with divisions 63 or 64 bits long. If you have a segment, use getValueCount(), or with IPAddressSegment use getPrefixValueCount(int), which both return int. Otherwise, use getPrefixCount(int) or getCount() which return BigInteger
- fixed issues with comparing non-standard division groupings with address comparators
- added verification when host-masking multiple-valued segments
- added verification when splitting IPv6AddressSegment
- fixed check when reversing per-byte multiple-valued division
- fixed trie-printing method option withNonAddedKeys
- fixed an issue with serialization of parsed hosts with qualifiers
- added control over parsing empty zones (a zone specifier followed by no zone)
- added a small fix to host name parsing some unusual host names
- a fix to IPv4AddressSection.toMaxHost
- fixed a rare synchronization issue when generating division strings in AddressDivisionBase
Version 5.3.3
- more flexible and efficient IPv6 zone handling
- addresses issue #48, converting prefixed addresses with zone to Inet6Address
- more efficient merging
Version 5.3.2
- new
longestPrefixMatchandlongestPrefixMatchNodemethods inAddressTrie,AddressTrieMapandAddressTrieSet, for more efficient matching without using the linked list fromelementsContaining - added binary string parsing for IPv4 and IPv6 (see javadoc for IPAddressString for supported formats), and producing binary segmented strings with
toSegmentedBinaryString - added support for parsing strings with uppercase hex
0Xand binary0B - improved performance of
mergeToPrefixBlocksandmergeToSequentialBlocks, also resulting in a different ordering of the result, sorted by lower value. The old ordering remains attainable with the comparator IPAddressSegmentSeries.getPrefixLenComparator - added
asNewTrietoTrieNodeto create a new trie which is a copy of the sub-trie with the node as root - added
IPAddressSeqRange.extend(IPAddressRange)to extend ranges more efficiently - added
IPAddress.applyToBoundsto use covering and spanning methods with multiple addresses or subnets, not just two - added
IPAddressString.prefixContains(IPAddressString)for quick prefix-based containment checks - fixed inconsistency between
prefixEqualsinIPAddressStringvsIPAddresswith addresses that have no prefix length - fixed issue in
IPAddressString.prefixEqualsinvolving prefix not on segment boundary - fixed issue with
spanWithPrefixBlocksnot splitting up subnets with multiple prefix blocks - fix to string parsing control with
allowsReverseRange, also added missingallowBase85 - fix to issue #41, duplicate property key
- fix to issue #44, wrong super method call
- fix to issue #46, wrong boundary check incrementing IPv6 segment at index 2