function classifyAddressv6
classifyAddressv6(address: bigint): Classificationv6

Classifies an IPv6 address into its well-known range.

Returns the most specific classification label for the given address. For overlapping ranges (e.g., 2001:db8::/32 within 2001::/32 within 2000::/3), the most specific match is returned.

Examples

Example 1

import { assertEquals } from "@std/assert";
import { classifyAddressv6 } from "@hertzg/ip/classifyv6";
import { parseAddressv6 } from "@hertzg/ip/addressv6";

assertEquals(classifyAddressv6(parseAddressv6("::1").address), "loopback");
assertEquals(classifyAddressv6(parseAddressv6("::").address), "unspecified");
assertEquals(classifyAddressv6(parseAddressv6("fe80::1").address), "link-local");
assertEquals(classifyAddressv6(parseAddressv6("ff02::1").address), "multicast");
assertEquals(classifyAddressv6(parseAddressv6("fd00::1").address), "unique-local");
assertEquals(classifyAddressv6(parseAddressv6("2001:db8::1").address), "documentation");
assertEquals(classifyAddressv6(parseAddressv6("2001:2::1").address), "benchmarking");
assertEquals(classifyAddressv6(parseAddressv6("2001:20::1").address), "orchidv2");
assertEquals(classifyAddressv6(parseAddressv6("2001::1").address), "teredo");
assertEquals(classifyAddressv6(parseAddressv6("::ffff:192.168.1.1").address), "ipv4-mapped");
assertEquals(classifyAddressv6(parseAddressv6("64:ff9b::1").address), "ipv4-translated");
assertEquals(classifyAddressv6(parseAddressv6("2607:f8b0:4004:800::200e").address), "global-unicast");

Parameters

address: bigint

The address as a 128-bit bigint

Return Type

The classification label

Usage

import { classifyAddressv6 } from "mod.ts";