IPv4 address classification utilities.

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

Examples

Classify an IPv4 address

import { assertEquals } from "@std/assert";
import { classifyAddressv4 } from "@hertzg/ip/classifyv4";
import { parseAddressv4 } from "@hertzg/ip/addressv4";

assertEquals(classifyAddressv4(parseAddressv4("192.168.1.1").address), "private");
assertEquals(classifyAddressv4(parseAddressv4("8.8.8.8").address), "public");
assertEquals(classifyAddressv4(parseAddressv4("127.0.0.1").address), "loopback");
assertEquals(classifyAddressv4(parseAddressv4("224.0.0.1").address), "multicast");

Check specific ranges

import { assert, assertEquals } from "@std/assert";
import { isAddressv4Loopback, isAddressv4Private, isAddressv4Public } from "@hertzg/ip/classifyv4";
import { parseAddressv4 } from "@hertzg/ip/addressv4";

assert(isAddressv4Loopback(parseAddressv4("127.0.0.1").address));
assert(isAddressv4Private(parseAddressv4("10.0.0.1").address));
assertEquals(isAddressv4Public(parseAddressv4("10.0.0.1").address), false);
assert(isAddressv4Public(parseAddressv4("8.8.8.8").address));

Functions

f
classifyAddressv4(address: number): Classificationv4

Classifies an IPv4 address into its well-known range.

f
isAddressv4Benchmarking(address: number): boolean

Checks if an IPv4 address is in the benchmarking range (RFC 2544).

f
isAddressv4Broadcast(address: number): boolean

Checks if an IPv4 address is the limited broadcast address.

f
isAddressv4CgNat(address: number): boolean

Checks if an IPv4 address is in the Carrier-Grade NAT range (RFC 6598).

f
isAddressv4Documentation(address: number): boolean

Checks if an IPv4 address is in a documentation range (RFC 5737).

f
isAddressv4LinkLocal(address: number): boolean

Checks if an IPv4 address is a link-local address (RFC 3927).

f
isAddressv4Loopback(address: number): boolean

Checks if an IPv4 address is a loopback address (RFC 1122).

f
isAddressv4Multicast(address: number): boolean

Checks if an IPv4 address is a multicast address (RFC 5771).

f
isAddressv4Private(address: number): boolean

Checks if an IPv4 address is in a private range (RFC 1918).

f
isAddressv4Public(address: number): boolean

Checks if an IPv4 address is a public (globally routable) address.

f
isAddressv4Reserved(address: number): boolean

Checks if an IPv4 address is in the reserved range (RFC 1112).

f
isAddressv4ThisNetwork(address: number): boolean

Checks if an IPv4 address is in the "this network" range (RFC 791).

Type Aliases