Ipaddr.V4 and Ipaddr.V4.Prefix modules are Map.OrderedType
Ipaddr.V6 and Ipaddr.V6.Prefix modules are Map.OrderedType
Ipaddr and Ipaddr.Prefix modules are Map.OrderedType
Ipaddr_unix in findlib subpackage ipaddr.unix provides compatibility with the standard library Unix module
Ipaddr_top in findlib subpackage ipaddr.top provides top-level pretty printers
IP address scope classification
IPv4-mapped addresses in IPv6 (::ffff:0:0/96) are an embedding of IPv4
MAC-48 (Ethernet) address support
Macaddr is a Map.OrderedType
All types have sexplib serializers/deserializers optionally via the Ipaddr_sexp and Macaddr_sexp libraries.
Usage
There are the following opam packages included:
ipaddr: the Ipaddr and associated modules
ipaddr-sexp
ipaddr-cstruct
macaddr: the Macaddr and associated modules.
macaddr-sexp
macaddr-cstruct
There are the following ocamlfind libraries included as part of this repository, included as part of the respective opam packages.
ipaddr: The Ipaddr module for IPv4/6 manipulation.
ipaddr.top: Toplevel printers for Ipaddr.
ipaddr-cstruct: The Ipaddr_cstruct module
macaddr: The Macaddr module for MAC address manipulation.
macaddr.top: Toplevel printers for Macaddr.
macaddr-cstruct: The Macaddr_cstruct module
ipaddr-sexp: S-expression converters for Ipaddr.
macaddr-sexp: S-expression converters for Macaddr.
Installation and development
The packages are released to the opam-repository. An opam install ipaddr (or any other above mentioned package) will install it. If you want to install the latest development commit, opam pin add ipaddr --dev will do this.
A local build, after a git clone can be done with dune build, a dune runtest compiles and executes the testsuite. If dependencies are missing, opam install (-t) --deps-only . in the cloned directory will install them.
The auto-formatter ocamlformat is used, please execute dune build @fmt --auto-promote before submitting a pull request.