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.
Classify an IPv4 address
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
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));
Classifies an IPv4 address into its well-known range.
Checks if an IPv4 address is in the benchmarking range (RFC 2544).
Checks if an IPv4 address is the limited broadcast address.
Checks if an IPv4 address is in the Carrier-Grade NAT range (RFC 6598).
Checks if an IPv4 address is in a documentation range (RFC 5737).
Checks if an IPv4 address is a link-local address (RFC 3927).
Checks if an IPv4 address is a loopback address (RFC 1122).
Checks if an IPv4 address is a multicast address (RFC 5771).
Checks if an IPv4 address is in a private range (RFC 1918).
Checks if an IPv4 address is a public (globally routable) address.
Checks if an IPv4 address is in the reserved range (RFC 1112).
Checks if an IPv4 address is in the "this network" range (RFC 791).
| "this-network"
| "loopback"
| "link-local"
| "documentation"
| "benchmarking"
| "cg-nat"
| "private"
| "multicast"
| "reserved"
| "public"
All possible IPv4 address classification labels.
Usage
import * as mod from "classifyv4.ts";