package macaddr-cstruct
- v5.6.0 (2024-05-22)
- v5.5.0 (2023-03-31)
- v5.4.0 (2023-03-13)
- v5.3.1 (2022-07-04)
- v5.3.0 (2022-03-04)
- v5.2.0 (2021-09-11)
- v5.1.0 (2021-06-08)
- v5.0.1 (2020-09-30)
- v5.0.0 (2020-06-16)
- v4.0.0 (2019-07-12)
- v3.1.0 (2019-03-02)
- 3.0.0 (2019-01-02)
- 2.9.0 (2018-12-11)
- 2.8.0 (2017-06-01)
- 2.7.2 (2017-02-16)
- 2.7.1 (2016-11-16)
- 2.7.0 (2016-02-14)
- 2.6.1 (2015-02-20)
- 2.6.0 (2015-02-19)
- 2.5.0 (2014-05-27)
- 2.4.0 (2014-02-11)
- 2.3.0 (2014-02-05)
- 2.2.0 (2014-01-27)
- 2.1.0 (2014-01-20)
- 2.0.0 (2014-01-17)
- 1.0.0 (2013-10-16)
- 0.2.3 (2013-09-20)
- 0.2.2 (2013-08-07)
- 0.2.1 (2013-08-01)
- 0.2.0 (2013-08-01)
- 0.1.1 (2013-07-31)
- 0.1.0 (2013-07-24)
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=1e617df8abd45843c823e9be75267d27426cb578661cf25622d50b25ae14a319
    
    
  sha512=09c37f963d27f697ee17b83f26364002cc2e60516c2199f78cd20663aaf293a1ce4380d728641b4c9b79066dc814c8f9293722a567ce6898261c4e98b34d80c2
    
    
  doc/CHANGES.html
v5.6.1 (2025-08-01)
- Add Ipaddr.Prefix.bits (#125 @psafont)
v5.6.0 (2024-05-22)
- Add host and subnet Seq.t iterators for Ipaddr.V4.prefix, Ipaddr.V6.Prefix and Ipaddr.Prefix (#107 @verbosemode @dinosaure)
- Ipaddr.V4.compare: use Int32.unsigned_compare, as provided since OCaml 4.08 (#118 @reynir)
- Ipaddr.V6.t is a string, not a byte vector anymore (so it is immutable) (#119 @reynir, restoring 4.08 compatibility #121)
- Provide Ipaddr.Prefix.address (since 5.0.0, Ipaddr.V4.Prefix.address and Ipaddr.V6.Prefix.address have been provided, but Ipaddr.Prefix.address was forgotten) (#122 @hannesm)
- Fix further docstrings (#123, fixes #81, @hannesm @reynir)
v5.5.0 (2023-03-31)
- add Ipaddrof_octetfunctions (#117, @ryangibb).
v5.4.0 (2023-03-13)
- Use Bytes.t for IPv6 addresses (#115 @verbosemode, fixes #16 @dsheets)
- Also fixes V6.to_int64(reported by @RyanGibb in #113)
v5.3.1 (2022-07-04)
- Remove stdlib-shims dependency, require OCaml 4.08+ (@hannesm, #112)
- Switch to ounit2 (@Alessandro-Barbieri, #111)
v5.3.0 (2022-03-04)
- Add with_port_of_stringfunction (@dinosaure, @hannesm, #108)
- breaking-change Be restrictive on Ipaddr.of_string(@dinosaure, @hannesm, #109) Before this release,Ipaddr.of_stringaccepts remaining bytes and returns a valid value such as"127.0.0.1aaaa"is valid. Now,ipaddrdoes not accept a string with remaining bytes.
v5.2.0 (2021-09-11)
- Use Cstruct.length instead of deprecated Cstruct.len (#106, @hannesm)
- Provide instantiated functors Set, Map, V4.Set, V4.Map, V6.Set, V6.Map (#106, @hannesm)
v5.1.0 (2021-06-08)
- Reject octal notation in IPv4 (cve-2021-29921, #104, @jsachs)
- CI fixes, upgrade to ocamlformat 0.18 (@hannesm)
v5.0.1 (2020-09-30)
- Fix V4.Prefix.broadcast and last with /32 prefixes (#102 @verbosemode)
v5.0.0 (2020-06-16)
- Do not zero out the non-prefix-length part of the address in - {V4,V6}.Prefix.t(#99 @hannesm) Removed- {V4,V6}.Prefix.of_address_string{,_exn}and- {V4,V6}.Prefix.to_address_{string.buffer}- To port code: - if you rely on Prefix.of_stringto zero out the non-prefix-length address bits, callPrefix.prefix : t -> tsubsequently.
- Prefix.of_address_string{,_exn}can be replaced by- Prefix.of_string{,_exn}, to retrieve the address use- Prefix.address : t -> addr.
- The Prefix.to_address_{string,buffer}can be replaced byPrefix.to_{string,buffer}, wherePrefix.talready contains the IP address to be printed.
- Instead of passing {V4,V6}.t * {V4,V6}.Prefix.tfor an address and subnet configuration,{V4,V6}.Prefix.tis sufficient.
 
- if you rely on 
- Implement {V4,V6,}.succ,{V4,V6,}.pred,{V4,V6}.Prefix.first, and{V4,V6}.Prefix.lastfunctions (#94 @NightBlues)
- Rename Prefix.of_netmasktoPrefix.of_netmask_exnwith labelled arguments (~netmask and ~address), providePrefix.of_netmaskwhich returns a (t, [> `Msg of string ]) result value (#95 @hannesm)
- Fix undefined behaviour of V4.Prefix.memwith a CIDR with prefix length 0 (#98 @verbosemode)
- Use stdlib-shims to prevent deprecation warnings on OCaml 4.08 (@avsm)
- Remove unnecessary "sexplib0" dependency (#95 @hannesm)
- Remove "{build}" directive from "dune" dependency (#93 @CraigFe)
v4.0.0 (2019-07-12)
- Rename the - to/from_bytesfunctions to refer to- octetsinstead. This distinguishes the meaning of human-readable addresses (- strings in this library) and byte-packed representations(- octets in this library) from the OCaml- bytestype that represents mutable strings.- Porting code should just be a matter of renaming functions such as: - Ipaddr.of_bytesbecomes- Ipaddr.of_octets
- Macaddr.to_bytesbecomes- Macaddr.to_octets
 
- Introduce new write_octetsfunctions that can write octet representations of IPv4/v6 into an existing bytestring.
- Use the domain-namelibrary to produce domain names from IP addresses.
- Remove the ipaddr.sexpandmacaddr.sexpocamlfind subpackages and instead haveipaddr-sexpandmacaddr-sexpto match the opam package names.
- Add new Ipaddr_cstructandMacaddr_cstructlibraries for conversion to/from cstructs (#36 @nojb @avsm)
v3.1.0 (2019-03-02)
- Do not leak a Not_foundexception when parsing[:in IPv6 and instead raiseParse_erroras other errors do (found by fuzz testing in #84 by @dinosaure)
- Install automatic toplevel printers for the Ipaddr types via [@@ocaml.toplevel_printer]. This enables utop to automatically install the printers (@avsm)
3.0.0 (2019-01-02)
This release features several backwards incompatible changes, but ones that should increase the portability and robustness of the library.
- Remove the sexp serialisers from the main interface in favour of - ppfunctions. Use the- Ipaddr_sexpmodule if you still need a sexp serialiser.- To use these with ppx-based derivers, simply replace the reference to the - Ipaddrtype definition with- Ipaddr_sexp. That will import the sexp-conversion functions, and the actual type definitions are simply aliases to the corresponding type within- Ipaddr. For example, you might do:- type t = { ip: Ipaddr_sexp.t; mac: Macaddr_sexp.t; } [@@deriving sexp]- The actual types of the records will be aliases to the main library types, and there will be two new functions available as converters. The signature after ppx has run will be: - type t = { ip: Ipaddr.t; mac: Macaddr.t; } val sexp_of_t : t -> Sexplib0.t val t_of_sexp : Sexplib0.t -> t
- Break out the Macaddrmodule into a separate opam package so that theIpaddrmodule can be wrapped. Use themacaddropam library now if you need just the MAC address functionality.
- Replace all the of_string/bytesfunctions that formerly returned option types with theRresultresult types instead. This stops the cause of the exception from being swallowed, and the error message in the new functions can be displayed usefully.
- In the Ipaddr.V6.to_stringandto_bufferfunctions, remove the optional labelled argumentv4and always output v4-mapped strings as recommended by RFC5952. (#80 by @hannesm).
- Remove pp_humwhich was deprecated in 2.9.0.
- Sexplib0 is now used which is more lightweight tha the full Sexplib library. Minimum OCaml version is now 4.04.0+ as a result of this dependency.
- Improvements to the ocamldoc formatting strings for better layout and odoc compatibility.
2.9.0 (2018-12-11)
- Add ppfunctions for prettyprinting and deprecatepp_humvariants. The two functions are currently the same, so porting is just a matter of replacing existing uses ofpp_humwithpp(#71 @verbosemode)
- Fix deprecation warnings on newer OCaml standard libraries (#74 @cfcs).
- Fix base-unixdepopt to be a real dependency (#68 @rgrinberg).
- Fix missing sexplibdependency (#66 #67 @bmillwood).
- Port to Dune from jbuilder and update opam metadata to 2.0 format (#76 @avsm).
- Remove unused variable and bindings warnings in the implementation and signatures (#76 @avsm)
- Fix toplevel handling of the ipaddr.toppackage by linking to compiler-libs instead of compiler-libs.toplevel (#76 @avsm based on fix in mirage/ocaml-uri#130 by @yallop)
- Update Travis to test latest distros by using their aliases (#76 @avsm)
- Upgrade opam metadata to the 2.0 format (#76 @avsm)
2.8.0 (2017-06-01)
- Port to Jbuilder (#65 @vbmithr @avsm). There should be no observable changes, except that Ipaddr_unixis now in a separate subdirectory. This means that packages that implicitly depended on the module without including the ocamlfindipaddr.unixpackage may now fail. Just adding the ocamlfind dependency will fix it, and is backwards compatible with older Ipaddr releases.
- Minimum version of OCaml required is now 4.03.0 (formerly was 4.02.2), due to the use of recent ppx_sexp_convwith Jbuilder also having that as the minimum supported compiler version.
2.7.2 (2017-02-16)
- Fix a missing findlib toploop package (#61 from Vincent Bernardoff)
2.7.1 (2016-11-16)
- Use topkg for build (#60 from Jochen Bartl)
2.7.0 (2016-02-14)
- Remove sexplib.syntax,type_convdeps and camlp4 transitive dependency
- Add ppx_sexp_convdependency
- Require OCaml 4.02.2+
- Add Ipaddr.Prefix.subset,Ipaddr.V4.Prefix.subsetandIpaddr.V6.subsetpredicates to test containment of subnets (#52 from @seliopou)
2.6.1 (2015-02-20)
- Fix findlib requires in oasis to restore pre-4.02.1 compatibility
2.6.0 (2015-02-19)
- Change IPv6 link-local address prefix from fe80::/10 to fe80::/64. (#39)
- Remove type bytes = string alias (potentially breaking)
- Turn on -safe-string (#41)
- {V4,V6}.to_bytes_rawnow uses Bytes.t rather than string (potentially breaking)
- Add multicast MAC conversions from RFC 1112 and RFC 2464
- Add to_domain_nameconversions to DNS label lists (in-addr.arpa and ip6.arpa)
- Add V6.interface_routers,V6.site_routers, andV6.Prefix.solicited_node
- Add V6.link_address_of_macto convert a MAC into a link local IP address
2.5.0 (2014-05-27)
- Add with sexp(de)serializers to all of the Ipaddr and Macaddr types. (#31)
2.4.0 (2014-02-11)
- Add Ipaddr.V6.Prefix.of_netmaskfor conversion from an IPv6 address/netmask to prefix (useful for some binary interfaces). See #27.
- Add Ipaddr.V6.Prefix.netmaskto generate a netmask address from a prefix (useful for some binary interfaces). See #27.
- Add Ipaddr.Prefix.networkfor generic prefix -> address conversion
- Add Ipaddr.Prefix.netmaskfor generic prefix -> netmask conversion
2.3.0 (2014-02-05)
- Add Ipaddr.V4.Prefix.of_netmaskfor conversion from an address/netmask to prefix
- Add Ipaddr.V4.Prefix.netmaskto generate a netmask address from a prefix
2.2.0 (2014-01-27)
- Add an [Ipaddr_unix] module to convert to-and-from the standard library.
- Add a toplevel pretty printer in the ipaddr.toppackage.
2.1.0 (2014-01-20)
- Add of_string_rawtoIpaddr.V4.PrefixandIpaddr.V6.Prefix
- Add of_addrtoIpaddr.V4.PrefixandIpaddr.V6.Prefix
- Add type ('v4,'v6) v4v6toIpaddrto represent version disjuncts
- Add Ipaddr.Prefixmodule for generic prefix manipulation
2.0.0 (2014-01-17)
- Change Ipaddr.V4.maketo acceptintrather thanint32(breaking)
- Add IPv6 support
- Add generic IP address support
- Add type scopefor classifying address scopes
- Add Ipaddr.V4.of_string_rawfor parsing inside of larger strings
- Add Ipaddr.V4.to_int16andIpaddr.V4.of_int16
- Add unspecified,nodes, androutersconstants toIpaddr.V4
- Add Ipaddr.V4.Prefix.network_addressto put an address into a subnet
- Add of_address_string_exn,of_address_string,to_address_string,to_address_buffertoIpaddr.V4.Prefixto parse/print combined addr/prefix
- Add multicast_org,multicast_admin,multicast_linksubnet constants toIpaddr.V4.Prefix
- Add Ipaddr.V4.scopeto classify IPv4 addresses
- Add Ipaddr.V4.is_globalandIpaddr.V4.is_multicastpredicates
- Add optional sep:charargument toMacaddr.to_string
- Remove internal use of Scanf.scanf
1.0.0 (2013-10-16)
- Add Travis-CI testing scripts.
- Include debug symbols and annot files by default.
0.2.3 (2013-09-20)
- Add Ipaddr.V4.Prefix.bitsfunction to produce bits of prefix from prefix.
0.2.2 (2013-08-07)
- Add Macaddr.make_localfunction to create local unicast MAC addresses from an octet generation function.
- Add Macaddr.get_ouiaccessor to extract the Organizationally Unique Identifier as an integer.
- Add Macaddr.is_localpredicate to test for a locally administered address.
- Add Macaddr.is_unicastpredicate to test for a unicast MAC address.
0.2.1 (2013-08-01)
- Add Ipaddr.V4.any,Ipaddr.V4.broadcast,Ipaddr.V4.localhostspecial constant addresses.
- Add Ipaddr.V4.Prefix.global(0.0.0.0/0) subnet constant.
- Add Ipaddr.V4.Prefix.networkfunction to produce subnet address from prefix.
0.2.0 (2013-08-01)
- Add Macaddrmodule for handling MAC-48 (Ethernet) addresses.
- Ipaddr.Parse_errornow contains both the error condition and the failing input.
- Add ocamldoc-compatible comments on all interfaces.
0.1.1 (2013-07-31)
- Add loopback and link local addresses to the private blocks.
- Fix build system so Makefile is generated by OASIS.
0.1.0 (2013-07-24)
- Initial public release.
- Includes IPv4 and IPv4 CIDR prefix support.
- v5.6.0 (2024-05-22)
- v5.5.0 (2023-03-31)
- v5.4.0 (2023-03-13)
- v5.3.1 (2022-07-04)
- v5.3.0 (2022-03-04)
- v5.2.0 (2021-09-11)
- v5.1.0 (2021-06-08)
- v5.0.1 (2020-09-30)
- v5.0.0 (2020-06-16)
- v4.0.0 (2019-07-12)
- v3.1.0 (2019-03-02)
- 3.0.0 (2019-01-02)
- 2.9.0 (2018-12-11)
- 2.8.0 (2017-06-01)
- 2.7.2 (2017-02-16)
- 2.7.1 (2016-11-16)
- 2.7.0 (2016-02-14)
- 2.6.1 (2015-02-20)
- 2.6.0 (2015-02-19)
- 2.5.0 (2014-05-27)
- 2.4.0 (2014-02-11)
- 2.3.0 (2014-02-05)
- 2.2.0 (2014-01-27)
- 2.1.0 (2014-01-20)
- 2.0.0 (2014-01-17)
- 1.0.0 (2013-10-16)
- 0.2.3 (2013-09-20)
- 0.2.2 (2013-08-07)
- 0.2.1 (2013-08-01)
- 0.2.0 (2013-08-01)
- 0.1.1 (2013-07-31)
- 0.1.0 (2013-07-24)