If IPv4 Were Land: Who Holds the Addresses and Why
Short answer (checked 2026-10-30): IPv4 is shared out very unevenly. Counting what the five regional internet registries (RIRs) list as allocated or assigned, organisations registered in the United States hold 43.6% of all IPv4 space and the ARIN region 44.6%, while the AFRINIC region holds 3.1% and the LACNIC region 4.9%. That imbalance is why most addresses on sale come from old North American holdings, why the transfer rules of each registry matter as much as the price, and why a network in Lagos or Mumbai often ends up leasing. Prices for buying and leasing are on /ipv4/pricing.
Source and credit. If IPv4 were land by IP Trust redraws every country so its area matches its share of about 3.6 billion geolocated IPv4 addresses (IP Trust geolocation data, October 2026). It reached the front page of Hacker News on 2026-10-29 (299 points, 416 comments). The figures below are not theirs: they are our own count from the registries' public files, which measure something different.
What the map shows, and what the thread argued about
The map replaces each country's land area with its share of addresses. Countries with many addresses for their size swell; countries with few shrink. IP Trust leaves out Antarctica and about 70 small territories that have no outline at the map's scale. In the Hacker News thread two points drew the most replies: the large blocks handed out early to US institutions and the Department of Defense, and the other side of the same coin, people in India and elsewhere sharing one public IPv4 address with many strangers behind carrier-grade NAT, with the captchas and bans that brings. IPv6 came up as the real fix, and as the fix many ISPs still have not deployed.
For the IPv4 market the map is a supply map. No new addresses are being made; they move from where they sit to where they are needed, by transfer or by lease.
Count it yourself: the five registry files
Every RIR publishes a daily "delegated-extended" file with one line per block: country code, size and status. The script below downloads all five, sums allocated and assigned IPv4 per country, prints the top 10 holders, addresses per person for the countries you pass (population from the World Bank API, 2024) and the total per RIR. Python 3, standard library only. Save it as rir_land.py:
#!/usr/bin/env python3
"""IPv4 registered per country across the five RIRs, per person and per RIR."""
import json
import sys
import urllib.request
from collections import Counter
RIRS = {
"ARIN": "https://ftp.arin.net/pub/stats/arin/delegated-arin-extended-latest",
"RIPE NCC": "https://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-extended-latest",
"APNIC": "https://ftp.apnic.net/stats/apnic/delegated-apnic-extended-latest",
"LACNIC": "https://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-extended-latest",
"AFRINIC": "https://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-extended-latest",
}
PER_PERSON = sys.argv[1:] or ["US", "GB", "DE", "BR", "IN", "NG"]
POP_URL = ("https://api.worldbank.org/v2/country/{}/indicator/SP.POP.TOTL"
"?format=json&date=2024&per_page=100")
by_cc, by_rir = Counter(), Counter()
for rir, url in RIRS.items():
header = True
with urllib.request.urlopen(url, timeout=300) as r:
for line in r:
f = line.decode("utf-8", "replace").strip().split("|")
if f[0].startswith("#") or len(f) < 7:
continue
if header: # version|registry|serial|records|startdate|enddate|UTCoffset
print(f"{rir:<9} file to {f[5]}")
header = False
continue
if f[2] != "ipv4" or f[6] not in ("allocated", "assigned"):
continue
by_cc[f[1]] += int(f[4])
by_rir[rir] += int(f[4])
total = sum(by_rir.values())
print(f"\nTop 10 registration countries ({total:,} IPv4 allocated/assigned)")
for cc, n in by_cc.most_common(10):
print(f" {cc} {n:>13,} {100 * n / total:5.1f}%")
with urllib.request.urlopen(POP_URL.format(";".join(PER_PERSON)), timeout=60) as r:
pop = {row["country"]["id"]: row["value"] for row in json.load(r)[1]}
print("\nIPv4 per person (World Bank population, 2024)")
for cc in PER_PERSON:
if pop.get(cc):
print(f" {cc} {by_cc[cc]:>13,} / {pop[cc]:>13,} = {by_cc[cc] / pop[cc]:6.3f}")
print("\nPer RIR")
for rir, n in by_rir.most_common():
print(f" {rir:<9}{n:>14,} {100 * n / total:5.1f}%")
python3 rir_land.py US GB DE BR IN NG
Output, run on a DCXV Cloud server with Python 3.14.4 on 2026-10-30:
ARIN file to 20261029
RIPE NCC file to 20261029
APNIC file to 20261029
LACNIC file to 20261029
AFRINIC file to 20261030
Top 10 registration countries (3,687,652,832 IPv4 allocated/assigned)
US 1,606,228,896 43.6%
CN 342,984,960 9.3%
JP 188,718,912 5.1%
GB 138,756,928 3.8%
DE 126,367,872 3.4%
KR 112,497,472 3.1%
FR 81,586,768 2.2%
BR 79,322,368 2.2%
CA 67,837,184 1.8%
IT 54,086,016 1.5%
IPv4 per person (World Bank population, 2024)
US 1,606,228,896 / 340,003,797 = 4.724
GB 138,756,928 / 69,281,000 = 2.003
DE 126,367,872 / 83,516,593 = 1.513
BR 79,322,368 / 211,998,573 = 0.374
IN 42,038,528 / 1,450,935,791 = 0.029
NG 3,218,944 / 232,679,478 = 0.014
Per RIR
ARIN 1,644,546,816 44.6%
APNIC 888,927,616 24.1%
RIPE NCC 856,081,504 23.2%
LACNIC 181,936,384 4.9%
AFRINIC 116,160,512 3.1%
How to read it. The registries list about 3.69 billion IPv4 addresses as allocated or assigned. The 1.61 billion registered to US organisations are more than the next nine countries hold together (1.19 billion). Per person, the United States has 4.7 registered addresses, Germany 1.5 and Brazil 0.37; India has about one address for every 35 people and Nigeria one for every 72, a gap of roughly 340 times between the US and Nigeria.
Registration country is not geolocation
The registry files record the country of the holder: where the organisation that holds the block is registered. Geolocation, which is what IP Trust maps and what GeoIP databases sell, estimates where an address is used. The two differ for four reasons:
- Global networks register at home. A US cloud or CDN holds its blocks under its US company and announces them from data centres on every continent. The registry says US; the map puts the address in Frankfurt or Singapore.
- A lease does not change the registry. A leased /24 stays registered to its owner while the lessee routes it in another country.
- Not every delegated block is in use. Blocks that are not announced or not used have no location for a geolocation database to find, so the two totals differ (about 3.6 billion located, about 3.69 billion delegated).
- Geolocation is inference. It is built from ISP data, geofeeds (RFC 8805), latency and user signals, and it can lag a move by weeks. The correction channels are in our guide to GeoIP after a transfer.
So the two maps answer different questions: who holds the title, and where the traffic comes from. A buyer needs both. The title decides who can sell; the usage history decides how the block will look to services once you route it.
Per registry: where supply sits and how it can move
| Registry | IPv4 delegated (our count) | Share | Inter-RIR IPv4 transfers (checked 2026-10-30) |
|---|---|---|---|
| ARIN | 1,644,546,816 | 44.6% | With APNIC, LACNIC and RIPE NCC; needs-based |
| APNIC | 888,927,616 | 24.1% | With ARIN, LACNIC and RIPE NCC |
| RIPE NCC | 856,081,504 | 23.2% | With ARIN, APNIC and LACNIC; 24-month hold after receipt |
| LACNIC | 181,936,384 | 4.9% | With ARIN, APNIC and RIPE NCC since July 2020 |
| AFRINIC | 116,160,512 | 3.1% | Policy ratified 2026-02-04, reciprocity only, AFRINIC-issued space stays in region; no implementation date published |
Most of the space that changes hands comes from holdings older than today's needs-based rules: legacy blocks and early allocations, many of them in the ARIN region, held by organisations that no longer use all of them. ARIN's own transfer log shows the flow: 748 ARIN-to-RIPE transfers in 2026 up to 2026-10-28, against 378 in all of 2025 (worked through in inter-RIR transfers from ARIN to RIPE).
Prices differ by registry because the rules differ. A block that can move to any region has more possible buyers than one that cannot leave its own; holding periods tie up capital; needs-based checks add time. We do not publish a per-registry price without a dated sample. The latest dated figures we use: the ip4.market 90-day median for a /24 was $25.40 per IP (sales to 2026-10-26), and IPv4Center's average /24 lease was $0.49 per IP a month (2026-10-28). Quotes by registry and block size: /ipv4/pricing.
What buyers in under-allocated regions can do
- Latin America: buy from another region. LACNIC members can receive IPv4 from holders in the ARIN, APNIC and RIPE NCC regions under LACNIC's inter-RIR policy, as long as they meet LACNIC's own requirements. The general mechanics are on /ipv4/inter-rir-transfer.
- South Asia: register it with APNIC. India is in the APNIC region, and APNIC accepts inter-RIR transfers from ARIN, RIPE NCC and LACNIC, so a /24 from a North American or European seller can end up registered to an Indian network. A /24 of your own also takes customer-facing services out of shared carrier-grade NAT.
- Africa: lease first, confirm before a cross-region buy. AFRINIC's transfer policy was ratified on 2026-02-04 and allows inter-RIR transfers only where reciprocity exists; ARIN has said it will accept transfers to and from AFRINIC once AFRINIC finishes implementing it. On 2026-10-30 AFRINIC's policy page gave no implementation date, so confirm with AFRINIC before you pay for a transfer into the region.
- Anywhere: lease to bridge the gap. A lease needs no registry transfer and no holding period; the block stays registered to its owner and you route it with an ROA for your AS and a geofeed. Terms are on lease IPv4.
How DCXV helps
The same imbalance works in both directions. If you hold space you no longer use, buyers in the regions that were short from the start are your market; if you need space, most of it sits with older holders elsewhere. DCXV brokers IPv4 purchases, sales and leases, including inter-RIR transfers: we check the title and the reputation of the block, agree how funds are held until the registry confirms, and follow the transfer through both registries. Talk to the IPv4 desk or email ipv4@dcxv.com.
