Module Ipaddr.V4

A collection of functions for IPv4 addresses.

type t

Type of the internet protocol v4 address of a host

include sig ... end
val t_of_sexp : Sexplib.Sexp.t ‑> t
val sexp_of_t : t ‑> Sexplib.Sexp.t
val compare : t ‑> t ‑> int
val make : int ‑> int ‑> int ‑> int ‑> t

Converts the low bytes of four int values into an abstract V4.t.

Text string conversion

val of_string_exn : string ‑> t

of_string_exn ipv4_string is the address represented by ipv4_string. Raises Parse_error if ipv4_string is not a valid representation of an IPv4 address.

val of_string : string ‑> t option

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

val of_string_raw : string ‑> int Pervasives.ref ‑> t

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

val to_string : t ‑> string

to_string ipv4 is the dotted decimal string representation of ipv4, i.e. XXX.XX.X.XXX.

val to_buffer : Buffer.t ‑> t ‑> unit

to_buffer buf ipv4 writes the string representation of ipv4 into the buffer buf.

val pp_hum : Format.formatter ‑> t ‑> unit

pp_hum f ipv4 outputs a human-readable representation of ipv4 to the formatter f.

Bytestring conversion

val of_bytes_exn : string ‑> t

of_bytes_exn ipv4_octets is the address represented by ipv4_octets. Raises Parse_error if ipv4_octets is not a valid representation of an IPv4 address.

val of_bytes : string ‑> t option

Same as of_bytes_exn but returns an option type instead of raising an exception.

val of_bytes_raw : string ‑> int ‑> t

Same as of_bytes_exn but take an extra paramenter, the offset into the bytes for reading.

val to_bytes : t ‑> string

to_bytes ipv4 is a string of length 4 encoding ipv4.

val to_bytes_raw : t ‑> Bytes.t ‑> int ‑> unit

to_bytes_raw ipv4 bytes offset writes the 4 byte encoding of ipv4 into bytes at offset offset.

Int conversion

val of_int32 : int32 ‑> t

of_int32 ipv4_packed is the address represented by ipv4_packed.

val to_int32 : t ‑> int32

to_int32 ipv4 is the 32-bit packed encoding of ipv4.

val of_int16 : (int * int) ‑> t

of_int16 ipv4_packed is the address represented by ipv4_packed.

val to_int16 : t ‑> int * int

to_int16 ipv4 is the 16-bit packed encoding of ipv4.

MAC conversion

val multicast_to_mac : t ‑> Macaddr.t

multicast_to_mac ipv4 is the MAC address corresponding to the multicast address ipv4. Described by RFC 1112.

Host conversion

val to_domain_name : t ‑> string list

to_domain_name ipv4 is the domain name label list for reverse lookups of ipv4. This includes the .in-addr.arpa. suffix.

Common addresses

val any : t

any is 0.0.0.0.

val unspecified : t

unspecified is 0.0.0.0.

val broadcast : t

broadcast is 255.255.255.255.

val nodes : t

nodes is 224.0.0.1.

val routers : t

routers is 224.0.0.2.

val localhost : t

localhost is 127.0.0.1.

module Prefix : sig ... end

A module for manipulating IPv4 network prefixes.

val scope : t ‑> scope

scope ipv4 is the classification of ipv4 by the scope hierarchy.

val is_global : t ‑> bool

is_global ipv4 is a predicate indicating whether ipv4 globally addresses a node.

val is_multicast : t ‑> bool

is_multicast ipv4 is a predicate indicating whether ipv4 is a multicast address.

val is_private : t ‑> bool

is_private ipv4 is a predicate indicating whether ipv4 privately addresses a node.

include Map.OrderedType with type t := t
type t

The type of the map keys.

val compare : t ‑> t ‑> int

A total ordering function over the keys. This is a two-argument function f such that f e1 e2 is zero if the keys e1 and e2 are equal, f e1 e2 is strictly negative if e1 is smaller than e2, and f e1 e2 is strictly positive if e1 is greater than e2. Example: a suitable ordering function is the generic structural comparison function Pervasives.compare.