76 lines
4.1 KiB
Markdown
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.
|