Module Ipaddr.Prefix

type addr = t

Type of a internet protocol subnet

val to_string : t -> string

to_string subnet is the text string representation of subnet.

val to_buffer : Stdlib.Buffer.t -> t -> unit

to_buffer buf subnet writes the text string representation of subnet into buf.

val pp : Stdlib.Format.formatter -> t -> unit

pp f subnet outputs a human-readable representation of subnet to the formatter f.

val of_string_exn : string -> t

of_string_exn cidr is the subnet prefix represented by the CIDR string, cidr. Raises Parse_error if cidr is not a valid representation of a CIDR notation routing prefix.

val of_string : string -> (t, [> `Msg of string ]) Stdlib.result

Same as of_string_exn but returns a result type instead of raising an exception.

val of_string_raw : string -> int Stdlib.ref -> t

Same as of_string_exn but takes as an extra argument the offset into the string for reading.

val v4_of_v6 : V6.Prefix.t -> V4.Prefix.t option

v4_of_v6 ipv6 is the IPv4 representation of the IPv6 subnet ipv6. If ipv6 is not an IPv4-mapped subnet, None is returned.

val to_v4 : t -> V4.Prefix.t option

to_v4 subnet is the IPv4 representation of subnet.

val v6_of_v4 : V4.Prefix.t -> V6.Prefix.t

v6_of_v4 ipv4 is the IPv6 representation of the IPv4 subnet ipv4.

val to_v6 : t -> V6.Prefix.t

to_v6 subnet is the IPv6 representation of subnet.

val mem : addr -> t -> bool

mem ip subnet checks whether ip is found within subnet.

val subset : subnet:t -> network:t -> bool

subset ~subnet ~network checks whether subnet is contained within network.

val of_addr : addr -> t

of_addr ip create a subnet composed of only one address, ip.

val network : t -> addr

network subnet is the address for subnet.

val netmask : t -> addr

netmask subnet is the netmask for subnet.

val address : t -> addr

address cidr is the address for cidr.

val first : t -> addr

first subnet is first valid unicast address in this subnet.

val last : t -> addr

last subnet is last valid unicast address in this subnet.

val hosts : ?usable:bool -> t -> (V4.t Stdlib.Seq.t, V6.t Stdlib.Seq.t) v4v6

hosts cidr is the sequence of host addresses in this cidr. By default, the network and broadcast addresses are omitted for IPv4. In the case of IPv6, the Subnet-Router anycast address is omitted by default. This can be changed by setting usable to false.

val subnets : int -> t -> (V4.Prefix.t Stdlib.Seq.t, V6.Prefix.t Stdlib.Seq.t) v4v6

subnets n cidr is the sequence of subnets of cidr with a prefix length of n.

include Stdlib.Map.OrderedType with type t := t
val compare : t -> t -> int