The Java IP Codec Suite
The jipcs contains the following codecs.
On link layer:
On internet layer:
- IPv4 packet (Internet Protocol version 4) (RFC 791)
- IPv6 packet (Internet Protocol version 6) (RFC 8200)
- ICMP (Internet Control Message Protocol) (RFC 792)
- IRDP (ICMP Router Discovery Protocol) (RFC 1256)
- PROBE (RFC 8335)
 
- IGMP (Internet Group Management Protocol) (RFC 3376)
- v1 (RFC 1112)
- v2 (RFC 2236)
- v3 (RFC 3376)
 
- ICMPv6 (Internet Control Message Protocol version 6) (RFC 4443)
- MLD (Multicast Listener Discovery) (RFC 2710)
- NDP (Neighbor Discovery Protocol) (RFC 4861)
- RR (Router Renumbering) (RFC 2894)
- IPv6 Node Information Queries (RFC 4620)
- IND (Inverse Neighbor Discovery) (RFC 3122)
- MLDv2 (Multicast Listener Discovery) (RFC 3810)
- Mobility Support in IPv6 (RFC 6275)
- SEND (Secure Neighbor Discovery) (RFC 3971)
- MRD (Multicast Router Discovery) (RFC 4286)
- RPL (Routing Protocol for Low-Power and Lossy Networks) (RFC 6550)
- MPL (Multicast Protocol for Low-Power and Lossy Networks) (RFC 7731)
- PROBE (RFC 8335)
 
On transport layer:
- TCP segment (Transmission Control Protocol) (RFC 9293)
- UDP datagram (User Datagram Protocol) (RFC 768)
Requirements:
- Java 8 or newer for 1.0.x
- Java 21 or newer for 1.1.x
- Java 25 or newer for 1.2.x
- This library does not have any external dependencies
Basic usage:
- Gradle implementation 'io.github.hirsivaja:jipcs:1.0.0'
- Java module-info requires com.github.hirsivaja.jipcs;
- To decode an IPv4 or IPv6 packet with headers call IpPacket.fromBytes(byte[] ipPacket) -method
- To encode your IPv4 or IPv6 object call IpPacket.toBytes() -method
This project is licensed under the terms of the MIT license.