Java library for handling IP addresses and subnets, both IPv4 and IPv6
Version 1.0.1 source can be compiled with a Java 6 compiler. The IPAddress.jar included with this release is compiled with a Java 6 compiler, and hence can be run on Java 6, Java 7, and up.
This version introduces new address range classes and reorganizes classes and code in the inet.ipaddr.format package.
This version is compatible with java 8 and the distributed jars are compiled with java 8, but those jars also include the module-info class for the Java Platform Module System (JPMS) introduced with Java 9, and hence can be used as the JPMS inet.ipaddr module with Java 9, 10, and 11. When compiling the source for Java 8 the module-info source file must be ignored or removed. When running the distributed jars with Java 8 no changes are required since the module-info class will simply be ignored.
The Java 8 code in this release and previous releases is fully compatible with Android using Android API level 24 or higher.
The main change in version 4 is a change to the way IP addresses with prefix length are handled. The old behaviour remains supported, see the doc section on prefix length handling to switch back (as simple as assigning a static field). The new behaviour is to recognize addresses with a zero host as the prefix-block subnet, while addresses with non-zero hosts are now considered individual addresses with an associated prefix length. This is consistent with common usage conventions for IPv4 and IPv6.
Version 4 is not backwards compatible with version 3, but migration is straightforward. Most of the API has not changed.