NetAddr.ip_2

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

Specs

ip_2(String.t()) ::
  {:ok, NetAddr.IPv4.t() | NetAddr.IPv4.t()} | {:error, :einval}

Identical to ip/1, but returns {:ok, value} on success instead of just value.

Examples

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

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

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

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

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

ip_2(ip_address_string, ip_mask_string)

View Source

Specs

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

Identical to ip/2, but returns {:ok, value} on success instead of just value.

Examples

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

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

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

iex> NetAddr.ip_2 "192.0.2.1", "14.249.150.22"
{:error, :einval}

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

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