Files
network-v1/registry-ips/README.md
T

76 lines
4.1 KiB
Markdown

# Global IP range registry
This folder is the human-readable registry of IP knowledge collected by this repository. It is organized by **network range**, not by one file for every individual address: IPv4 alone contains 4,294,967,296 addresses, and registration and routing facts normally apply to prefixes.
## Filename convention
```text
<zero-padded-network-address>--<zero-padded-prefix-length>--<registry-or-status>.md
```
Examples:
```text
000-000-000-000--08--iana.md
001-000-000-000--16--placeholder.md
001-001-001-000--24--apnic.md
```
The parts mean:
- `zero-padded-network-address`: canonical IPv4 network address, each octet padded to three digits and separated by hyphens;
- `zero-padded-prefix-length`: CIDR range number without `/`, padded to two digits;
- `registry-or-status`: authoritative number registry when the exact range has a researched/manual record (`iana`, `afrinic`, `apnic`, `arin`, `lacnic`, or `ripe-ncc`); `iana-special` for generated IANA special-purpose records; otherwise `placeholder`.
Top-level `/8` records generated from the IANA IPv4 Address Space Registry use their current RDAP authority in the suffix. This is registry-level attribution, not a claim that one entity holds or operates every more-specific address.
The zero padding is required because repository browsers sort filenames lexicographically: without it, `1-10...` would appear before `1-2...`.
IPv6 filenames use the same rule, with colons replaced by hyphens and compressed notation expanded to avoid ambiguous names.
## Current coverage
The generated [complete IPv4 index](IPV4-INDEX.md) now contains:
- all **256 top-level `/8` ranges** from the IANA IPv4 Address Space Registry, providing gapless coverage of the complete IPv4 address space;
- all **26 expanded prefixes** from the IANA IPv4 Special-Purpose Address Registry;
- links to every generated baseline range file, with manually researched records retained alongside them.
The folder currently contains **284 range files**: 280 generated IANA baseline records and four pre-existing manual research/placeholder records. Overlap is intentional: a top-level `/8`, a special-purpose prefix, and a more-specific researched range describe different layers of the same address space.
Examples of manual detail retained alongside the generated baseline:
| Range | Registry | Classification | Status | Record |
|---|---|---|---|---|
| `0.0.0.0/8` | IANA | Special-purpose | Researched | [record](000-000-000-000--08--iana.md) |
| `1.0.0.0/16` | APNIC | Pending subdivision/research | Placeholder | [record](001-000-000-000--16--placeholder.md) |
| `1.1.0.0/24` | APNIC | Pending research | Placeholder | [record](001-001-000-000--24--placeholder.md) |
| `1.1.1.0/24` | APNIC | Public unicast | Researched | [record](001-001-001-000--24--apnic.md) |
This is exhaustive at the IANA top-level `/8` layer, but not yet exhaustive for all more-specific RIR allocations, BGP announcements, operators, services, individual IPv4 addresses, or IPv6. The expansion plan is in [`research/ip-network-roadmap.md`](../research/ip-network-roadmap.md).
## Synchronization
Run:
```text
make sync-iana-ipv4
```
The synchronization script downloads both authoritative IANA CSV registries, verifies that all 256 `/8` blocks are present, expands multi-prefix special-purpose rows, regenerates CSV/index artifacts, and updates only files carrying its generated-file marker. Manually researched files are never overwritten.
## Required contents
Use [`TEMPLATE.md`](TEMPLATE.md) for every new range record. The **first section after the title must be `Who is this IP range?`** and must immediately name the registered holder/authority and operator—or explicitly say detailed attribution is unknown.
Every range file must then distinguish:
1. registry and registered resource holder;
2. special-purpose classification, where applicable;
3. observed BGP announcement and origin ASN;
4. operator and service relationships;
5. exact addresses already investigated inside the range;
6. sources and verification dates.
Do not compress these into a single misleading “owner” field. Registration, routing, operation, and service responsibility can belong to different organizations.