NetAddr.ip

You're seeing just the function ip, go back to NetAddr module for more information.

Specs

ip(String.t()) :: NetAddr.IPv4.t() | NetAddr.IPv6.t() | {:error, :einval}

Parses ip_string as an IPv4/IPv6 address or CIDR, returning a NetAddr.IPv4.t/0 or NetAddr.IPv6.t/0 as appropriate.

Examples

iex> NetAddr.ip "192.0.2.1"
%NetAddr.IPv4{address: <<192,0,2,1>>, length: 32}

iex> NetAddr.ip "192.0.2.1/24"
%NetAddr.IPv4{address: <<192,0,2,1>>, length: 24}

iex> NetAddr.ip "fe80::c101"
%NetAddr.IPv6{address: <<0xfe,0x80,0::12*8,0xc1,0x01>>, length: 128}

iex> NetAddr.ip "fe80::c101/64"
%NetAddr.IPv6{address: <<0xfe,0x80,0::12*8,0xc1,0x01>>, length: 64}

iex> NetAddr.ip "blarg"
{:error, :einval}
Link to this function

ip(ip_address_string, ip_mask_string_or_length)

View Source

Specs

ip(String.t(), nil) :: NetAddr.IPv4.t() | NetAddr.IPv6.t() | {:error, :einval}
ip(String.t(), String.t()) ::
  NetAddr.IPv4.t() | NetAddr.IPv6.t() | {:error, :einval}
ip(String.t(), non_neg_integer()) ::
  NetAddr.IPv4.t() | NetAddr.IPv6.t() | {:error, :einval}

Parses ip_address_string with the given address length or ip_mask_string.

Examples

iex> NetAddr.ip "0.0.0.0", 0
%NetAddr.IPv4{address: <<0, 0, 0, 0>>, length: 0}

iex> NetAddr.ip "192.0.2.1", 24
%NetAddr.IPv4{address: <<192, 0, 2, 1>>, length: 24}

iex> NetAddr.ip "192.0.2.1", "255.255.255.0"
%NetAddr.IPv4{address: <<192, 0, 2, 1>>, length: 24}

iex> NetAddr.ip "fe80:0:c100::c401", 64
%NetAddr.IPv6{address: <<254, 128, 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 1>>, length: 64}

iex> NetAddr.ip "blarg", 32
{:error, :einval}

iex> NetAddr.ip "192.0.2.010"
%NetAddr.IPv4{address: <<192, 0, 2, 10>>, length: 32}

iex> NetAddr.ip "192.0.2.1/33"
{:error, :einval}