family enum Return both registries or only one address family.
Browse IANA IPv4 and IPv6 special-purpose registries or classify an address with deterministic most-specific-prefix matching.
Authoritative reference data or standards computation
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
family | enum | default: any allowed: any | ipv4 | ipv6 example: ipv4 | Return both registries or only one address family. |
globallyReachable | boolean | example: false | Keep rows whose IANA Globally Reachable value exactly equals this boolean; null rows do not match. |
forwardable | boolean | example: true | Keep rows whose IANA Forwardable value exactly equals this boolean; null rows do not match. |
search | string | allowed: 1 – 80 example: documentation | Case-insensitive substring search across CIDR, IANA name and reference. |
family enum Return both registries or only one address family.
globallyReachable boolean Keep rows whose IANA Globally Reachable value exactly equals this boolean; null rows do not match.
forwardable boolean Keep rows whose IANA Forwardable value exactly equals this boolean; null rows do not match.
search string Case-insensitive substring search across CIDR, IANA name and reference.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
count | int | default: all matches allowed: 1 – 100 example: 3 | Limit the number of returned records (1–100). Defaults to all matches. |
fields | list | example: family,cidr | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: reservedByProtocol | Return all fields except these (comma-separated). |
format | enum | default: json allowed: json | ndjson | csv example: csv | Response format: json envelope, ndjson (one record per line) or csv. |
pretty | boolean | default: false example: true | Pretty-print the JSON response. |
unwrap | boolean | default: false example: true | Drop the envelope: return the raw array/object without data/meta wrapper. |
count int Limit the number of returned records (1–100). Defaults to all matches.
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
format enum Response format: json envelope, ndjson (one record per line) or csv.
pretty boolean Pretty-print the JSON response.
unwrap boolean Drop the envelope: return the raw array/object without data/meta wrapper.
| Field | Type | Description | Example |
|---|---|---|---|
family | integer (4 | 6) | Address family: 4 for IPv4 or 6 for IPv6. | 4 |
cidr | string | Special-purpose address block registered by IANA. | 192.0.2.0/24 |
name | string | IANA designation for the block. | Documentation (TEST-NET-1) |
reference | string | RFC or other reference cited by the IANA registry. | [RFC5737] |
allocationDate | string (YYYY-MM) | Allocation month as published by IANA. | 2010-01 |
terminationDate nullable | string (YYYY-MM) | Termination month for historical entries, or null when none is published. | null |
source nullable | boolean | IANA Source attribute; null represents a blank or N/A registry cell. | false |
destination nullable | boolean | IANA Destination attribute; null represents a blank or N/A registry cell. | false |
forwardable nullable | boolean | IANA Forwardable attribute; null represents a blank or N/A registry cell. | false |
globallyReachable nullable | boolean | IANA Globally Reachable attribute; null represents a blank or N/A registry cell. | false |
reservedByProtocol nullable | boolean | IANA Reserved-by-Protocol attribute; null represents a blank or N/A registry cell. | false |
family integer (4 | 6) Address family: 4 for IPv4 or 6 for IPv6.
example: 4
cidr string Special-purpose address block registered by IANA.
example: 192.0.2.0/24
name string IANA designation for the block.
example: Documentation (TEST-NET-1)
reference string RFC or other reference cited by the IANA registry.
example: [RFC5737]
allocationDate string (YYYY-MM) Allocation month as published by IANA.
example: 2010-01
terminationDate string (YYYY-MM) nullable Termination month for historical entries, or null when none is published.
example: null
source boolean nullable IANA Source attribute; null represents a blank or N/A registry cell.
example: false
destination boolean nullable IANA Destination attribute; null represents a blank or N/A registry cell.
example: false
forwardable boolean nullable IANA Forwardable attribute; null represents a blank or N/A registry cell.
example: false
globallyReachable boolean nullable IANA Globally Reachable attribute; null represents a blank or N/A registry cell.
example: false
reservedByProtocol boolean nullable IANA Reserved-by-Protocol attribute; null represents a blank or N/A registry cell.
example: false
/api/ip-special-ranges?family=ipv4&search=documentation {
"data": [
{
"family": 4,
"cidr": "192.0.2.0/24",
"name": "Documentation (TEST-NET-1)",
"reference": "[RFC5737]",
"allocationDate": "2010-01",
"terminationDate": null,
"source": false,
"destination": false,
"forwardable": false,
"globallyReachable": false,
"reservedByProtocol": false
},
{
"family": 4,
"cidr": "198.51.100.0/24",
"name": "Documentation (TEST-NET-2)",
"reference": "[RFC5737]",
"allocationDate": "2010-01",
"terminationDate": null,
"source": false,
"destination": false,
"forwardable": false,
"globallyReachable": false,
"reservedByProtocol": false
},
{
"family": 4,
"cidr": "203.0.113.0/24",
"name": "Documentation (TEST-NET-3)",
"reference": "[RFC5737]",
"allocationDate": "2010-01",
"terminationDate": null,
"source": false,
"destination": false,
"forwardable": false,
"globallyReachable": false,
"reservedByProtocol": false
…
"generatedAt": "2026-07-29T08:14:28.000Z"
}
} /api/ip-special-ranges?forwardable=true&globallyReachable=false {
"data": [
{
"family": 4,
"cidr": "10.0.0.0/8",
"name": "Private-Use",
"reference": "[RFC1918]",
"allocationDate": "1996-02",
"terminationDate": null,
"source": true,
"destination": true,
"forwardable": true,
"globallyReachable": false,
"reservedByProtocol": false
},
{
"family": 4,
"cidr": "100.64.0.0/10",
"name": "Shared Address Space",
"reference": "[RFC6598]",
"allocationDate": "2012-04",
"terminationDate": null,
"source": true,
"destination": true,
"forwardable": true,
"globallyReachable": false,
"reservedByProtocol": false
},
{
"family": 4,
"cidr": "172.16.0.0/12",
"name": "Private-Use",
"reference": "[RFC1918]",
"allocationDate": "1996-02",
"terminationDate": null,
"source": true,
"destination": true,
"forwardable": true,
"globallyReachable": false,
"reservedByProtocol": false
…
"generatedAt": "2026-07-29T08:14:28.000Z"
}
} /api/ip-special-ranges?family=any&count=100 {
"data": [
{
"family": 4,
"cidr": "0.0.0.0/8",
"name": "\"This network\"",
"reference": "[RFC791], Section 3.2",
"allocationDate": "1981-09",
"terminationDate": null,
"source": true,
"destination": false,
"forwardable": false,
"globallyReachable": false,
"reservedByProtocol": true
},
{
"family": 4,
"cidr": "0.0.0.0/32",
"name": "\"This host on this network\"",
"reference": "[RFC1122], Section 3.2.1.3",
"allocationDate": "1981-09",
"terminationDate": null,
"source": true,
"destination": false,
"forwardable": false,
"globallyReachable": false,
"reservedByProtocol": true
},
{
"family": 4,
"cidr": "10.0.0.0/8",
"name": "Private-Use",
"reference": "[RFC1918]",
"allocationDate": "1996-02",
"terminationDate": null,
"source": true,
"destination": true,
"forwardable": true,
"globallyReachable": false,
"reservedByProtocol": false
…
"generatedAt": "2026-07-29T08:14:28.000Z"
}
} | Parameter | Type | Default & allowed | Description |
|---|---|---|---|
ip
required
| string | allowed: 2 – 45 example: 192.0.0.9 | Strict IPv4 or IPv6 address. Output and meta.params use canonical notation. |
ip string required Strict IPv4 or IPv6 address. Output and meta.params use canonical notation.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
fields | list | example: ip,family | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: registryVersion | Return all fields except these (comma-separated). |
pretty | boolean | default: false example: true | Pretty-print the JSON response. |
unwrap | boolean | default: false example: true | Drop the envelope: return the raw array/object without data/meta wrapper. |
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
pretty boolean Pretty-print the JSON response.
unwrap boolean Drop the envelope: return the raw array/object without data/meta wrapper.
| Field | Type | Description | Example |
|---|---|---|---|
ip | string (IP address) | Canonical address that was classified. | 192.0.0.9 |
family | integer (4 | 6) | Detected IP address family. | 4 |
isSpecialPurpose | boolean | Whether at least one IANA special-purpose block contains the address. | true |
mostSpecific nullable | object | Longest-prefix matching IANA row, or null when none matches. | {"cidr":"192.0.0.9/32","name":"Port Control Protocol Anycast"} |
matches | object[] | All containing IANA rows in longest-prefix order. | [{"cidr":"192.0.0.9/32"},{"cidr":"192.0.0.0/24"}] |
registryVersion | string (date) | Pinned IANA registry snapshot used for classification. | 2025-10-09 |
ip string (IP address) Canonical address that was classified.
example: 192.0.0.9
family integer (4 | 6) Detected IP address family.
example: 4
isSpecialPurpose boolean Whether at least one IANA special-purpose block contains the address.
example: true
mostSpecific object nullable Longest-prefix matching IANA row, or null when none matches.
example: {"cidr":"192.0.0.9/32","name":"Port Control Protocol Anycast"}
matches object[] All containing IANA rows in longest-prefix order.
example: [{"cidr":"192.0.0.9/32"},{"cidr":"192.0.0.0/24"}]
registryVersion string (date) Pinned IANA registry snapshot used for classification.
example: 2025-10-09
/api/ip-special-ranges/classify?ip=192.0.0.9 {
"data": {
"ip": "192.0.0.9",
"family": 4,
"isSpecialPurpose": true,
"mostSpecific": {
"family": 4,
"cidr": "192.0.0.9/32",
"name": "Port Control Protocol Anycast",
"reference": "[RFC7723]",
"allocationDate": "2015-10",
"terminationDate": null,
"source": true,
"destination": true,
"forwardable": true,
"globallyReachable": true,
"reservedByProtocol": false
},
"matches": [
{
"family": 4,
"cidr": "192.0.0.9/32",
"name": "Port Control Protocol Anycast",
"reference": "[RFC7723]",
"allocationDate": "2015-10",
"terminationDate": null,
"source": true,
"destination": true,
"forwardable": true,
"globallyReachable": true,
"reservedByProtocol": false
},
{
"family": 4,
"cidr": "192.0.0.0/24",
"name": "IETF Protocol Assignments",
"reference": "[RFC6890], Section 2.1",
"allocationDate": "2010-01",
"terminationDate": null,
"source": false,
…
"generatedAt": "2026-07-29T08:14:28.000Z"
}
} /api/ip-special-ranges/classify?ip=2001%3Adb8%3A%3A42 {
"data": {
"ip": "2001:db8::42",
"family": 6,
"isSpecialPurpose": true,
"mostSpecific": {
"family": 6,
"cidr": "2001:db8::/32",
"name": "Documentation",
"reference": "[RFC3849]",
"allocationDate": "2004-07",
"terminationDate": null,
"source": false,
"destination": false,
"forwardable": false,
"globallyReachable": false,
"reservedByProtocol": false
},
"matches": [
{
"family": 6,
"cidr": "2001:db8::/32",
"name": "Documentation",
"reference": "[RFC3849]",
"allocationDate": "2004-07",
"terminationDate": null,
"source": false,
"destination": false,
"forwardable": false,
"globallyReachable": false,
"reservedByProtocol": false
}
],
"registryVersion": "2025-10-09"
},
"meta": {
"endpoint": "ip-special-ranges",
"route": "/classify",
"params": {
"ip": "2001:db8::42"
},
"generatedAt": "2026-07-29T08:14:28.000Z"
}
} /api/ip-special-ranges/classify?ip=8.8.8.8 {
"data": {
"ip": "8.8.8.8",
"family": 4,
"isSpecialPurpose": false,
"mostSpecific": null,
"matches": [],
"registryVersion": "2025-10-09"
},
"meta": {
"endpoint": "ip-special-ranges",
"route": "/classify",
"params": {
"ip": "8.8.8.8"
},
"generatedAt": "2026-07-29T08:14:28.000Z"
}
} A pinned, build-time snapshot of both IANA Special-Purpose Address Registries. Each row preserves IANA's source, destination, forwardable, globally reachable and reserved-by-protocol flags; a null flag means the source registry published a blank or N/A value, not false.
The classification route parses IPv4 and IPv6 strictly, finds every containing IANA block and orders overlaps by longest prefix first. mostSpecific is therefore deterministic: 192.0.0.9 resolves to its /32 entry ahead of the containing /24. Ordinary addresses return isSpecialPurpose: false, a null most-specific record and an empty matches list.
Data is never fetched during a request. The checked-in snapshot is versioned 2025-10-09; its two raw IANA feeds are SHA-256 pinned and regenerated by a deterministic parity script. Historical rows retained by IANA remain visible with their termination date.
Every containing IANA block is returned in longest-prefix order, and mostSpecific is the first one. Source order breaks ties deterministically.
No. Null preserves an IANA blank or N/A cell; it is kept distinct from an explicit false value.
No. It serves the SHA-256-pinned 2025-10-09 snapshot checked into the Worker bundle, so requests are synchronous and reproducible.
Parse, split and compare strict IPv4 CIDR blocks or test membership, with canonical unsigned boundaries, exact subnet counts and no truncation.
Parse, split and compare IPv6 CIDRs with exact 128-bit arithmetic, RFC 5952 canonical output and correct /0 and /128 boundaries.
Random internet building blocks — valid IPv4/IPv6 addresses, locally-administered MACs, non-resolvable .test domains and URLs, slugs, ports and TLDs.
IANA DNS RR TYPE assignments with numeric value, registry meaning and reference — search the scoped list or look up a mnemonic or number.