Commons Network
A library of IP network representation classes, like
- IP address (IPv4, IPv6),
- MAC address,
- IP network using the CIDR method (Classless Inter-Domain Routing).
Prerequisites
- Java 8 or later
- Maven 3.6 or later
Design Goals
The following are the key design goals:
- Test-coverage: Have well-tested classes. Test coverage is at the moment at 95% line-coverage.
- Immutability: Have immutable classes where possible to support usage in a multi-threaded environment.
- Performance: Have simple, well-performing implementations.
- Simplicity: Have simple implementations where possible.
- No dependencies: Do not require dependencies for the core cases.
- Fail-fast: If you enter illegal data, you'll get an exception. The invariant of all objects is to contain no illegal or null data.
- No I/O: In contrast to the InetAddress class in JDK, these classes are just model classes.
Usage
You can include commons-network as a Maven dependency from Maven Central.
Maven dependency
<dependency>
<groupId>com.oneandone</groupId>
<artifactId>commons-network</artifactId>
<version>0.14.0</version>
</dependency>
Documentation of provided classes and methods
The JavaDoc documentation can be found here.
Version schema
The version numbers are chosen according to the semantic versioning schema. Especially major version changes come with breaking API changes.