function unmapToAddressv4
unmapToAddressv4(address: Addressv6): Addressv4

Extracts the IPv4 address from an IPv4-mapped IPv6 address.

Takes a 128-bit IPv4-mapped IPv6 address (::ffff:x.x.x.x) and returns the embedded 32-bit IPv4 address as defined in RFC 4291 Section 2.5.5.2.

Examples

Example 1

import { assertEquals } from "@std/assert";
import { parseAddressv6, unmapToAddressv4 } from "@hertzg/ip/addressv6";
import { stringifyAddressv4 } from "@hertzg/ip/addressv4";

assertEquals(
  stringifyAddressv4(unmapToAddressv4(parseAddressv6("::ffff:192.168.1.1").address)),
  "192.168.1.1",
);
assertEquals(
  stringifyAddressv4(unmapToAddressv4(parseAddressv6("::ffff:c0a8:101").address)),
  "192.168.1.1",
);
assertEquals(
  stringifyAddressv4(unmapToAddressv4(parseAddressv6("::ffff:0.0.0.0").address)),
  "0.0.0.0",
);

Parameters

address: Addressv6

The IPv4-mapped address as a 128-bit bigint

Return Type

The extracted IPv4 address as a 32-bit unsigned integer

Usage

import { unmapToAddressv4 } from "addressv6.ts";