# 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 ----.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.