Pfx.nat64_encode
You're seeing just the function
nat64_encode
, go back to Pfx module for more information.
Specs
Returns an IPv4 embedded IPv6 address for given pfx6
and pfx4
.
The length of the pfx6.bits
should be one of [96, 64, 56, 48, 40, 32] as defined
in rfc6052. The pfx4
prefix should be a full address.
Examples
iex> nat64_encode("2001:db8:100::/40", "192.0.2.33")
"2001:db8:1c0:2:21::"
iex> nat64_encode("2001:db8:122::/48", "192.0.2.33")
"2001:db8:122:c000:2:2100::"
iex> nat64_encode("2001:db8:122:300::/56", "192.0.2.33")
"2001:db8:122:3c0:0:221::"
iex> nat64_encode("2001:db8:122:344::/64", "192.0.2.33")
"2001:db8:122:344:c0:2:2100:0"
iex> nat64_encode("2001:db8:122:344::/96", "192.0.2.33")
"2001:db8:122:344::c000:221"
iex> nat64_encode({{0x2001, 0xdb8, 0, 0, 0, 0, 0, 0}, 32}, "192.0.2.33")
{{0x2001, 0xdb8, 0xc000, 0x221, 0, 0, 0, 0}, 128}
iex> nat64_encode(%Pfx{bits: <<0x2001::16, 0xdb8::16>>, maxlen: 128}, "192.0.2.33")
%Pfx{bits: <<0x2001::16, 0xdb8::16, 0xc000::16, 0x221::16, 0::64>>, maxlen: 128}
iex> nat64_encode("2001:db8::/32", "192.0.2.33")
"2001:db8:c000:221::"