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}
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}