IPv6 address classification utilities.

This module provides functions to classify IPv6 addresses into well-known ranges defined by IANA and various RFCs. Each function checks if an IPv6 address (as a 128-bit bigint) belongs to a specific range.

Examples

Classify an IPv6 address

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("2001:db8::1").address), "documentation");
assertEquals(classifyAddressv6(parseAddressv6("fe80::1").address), "link-local");
assertEquals(classifyAddressv6(parseAddressv6("2607:f8b0:4004:800::200e").address), "global-unicast");

Check specific ranges

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

assert(isAddressv6Loopback(parseAddressv6("::1").address));
assert(isAddressv6UniqueLocal(parseAddressv6("fd00::1").address));
assertEquals(isAddressv6Loopback(parseAddressv6("::2").address), false);

Functions

f
classifyAddressv6(address: bigint): Classificationv6

Classifies an IPv6 address into its well-known range.

f
isAddressv6Benchmarking(address: bigint): boolean

Checks if an IPv6 address is in the benchmarking range (RFC 5180).

f
isAddressv6Documentation(address: bigint): boolean

Checks if an IPv6 address is in the documentation range (RFC 3849).

f
isAddressv6GlobalUnicast(address: bigint): boolean

Checks if an IPv6 address is a global unicast address (RFC 4291).

f
isAddressv6LinkLocal(address: bigint): boolean

Checks if an IPv6 address is a link-local address (RFC 4291).

f
isAddressv6Loopback(address: bigint): boolean

Checks if an IPv6 address is the loopback address (RFC 4291).

f
isAddressv6Mapped(address: bigint): boolean

Checks if an IPv6 address is an IPv4-mapped address (RFC 4291).

f
isAddressv6Multicast(address: bigint): boolean

Checks if an IPv6 address is a multicast address (RFC 4291).

f
isAddressv6Orchidv2(address: bigint): boolean

Checks if an IPv6 address is an ORCHIDv2 address (RFC 7343).

f
isAddressv6Teredo(address: bigint): boolean

Checks if an IPv6 address is a Teredo address (RFC 4380).

f
isAddressv6Translated(address: bigint): boolean

Checks if an IPv6 address is an IPv4-translated address (RFC 6052).

f
isAddressv6UniqueLocal(address: bigint): boolean

Checks if an IPv6 address is a unique local address (RFC 4193).

f
isAddressv6Unspecified(address: bigint): boolean

Checks if an IPv6 address is the unspecified address (RFC 4291).

Type Aliases