Ist IPv4 2026 noch eine Geldanlage? Rendite nach Gebühren
Kurz gesagt (geprüft am 2026-11-06): ja, als Ertragsanlage, nicht als Wette auf den Preis. Ein /24 zum 90-Tage-Median von ip4.market, $25.25 pro IP (Index vom 2026-11-02), kostet rund $6,464. Vermietet zum IPv4Center-Durchschnitt von $0.53 pro IP und Monat bringt er etwa $1,628 im Jahr: 25.2% brutto. Den Rest entscheidet die Registry. In einem LIR, den Sie ohnehin bezahlen, ist das auch die Netto-Rendite; bei ARIN bleiben nach der Gebühr 2027 noch 20.7%; in einem neuen RIPE-LIR nur für diesen Block macht die Gebühr von EUR 1,894 daraus 7.7% Verlust im Jahr. Ein /22 verdient genug, um einen eigenen LIR zu tragen. Alle Zahlen sind datierte Beobachtungen; ein Angebot gibt es unter IPv4-Preise.
Was sich seit dem Einbruch 2025 geändert hat
Die Spekulationsprämie ist weg. Unsere Marktnotizen vom Juli 2026 sahen einen /24 bei etwa $30 pro IP und Mieten um $0.40 im Monat: 16% brutto. Bis November 2026 fiel der Kaufpreis stärker als die Miete, dieselbe Rechnung ergibt 25.2%. Große Blöcke sind pro Adresse weiter am billigsten: der ip4.market-Index zeigt 90-Tage-Mediane von $19.00 für ein /22, $15.97 für ein /20 und $12.62 für ein /16 (nur zwei Verkäufe). Wer 2026 kauft, bezahlt Ertrag, nicht einen Preis, der nur steigt.
Die Fixkosten bewegten sich in die Gegenrichtung. Ab 2027 verlangt die RIPE NCC nach RIPE-867 EUR 1,894 pro LIR-Konto, ohne Gebühr pro IP oder Transfer, Aufnahme EUR 1,000 (siehe was sich im Gebührenmodell 2027 ändert). Seit dem 29. September 2026 lässt die RIPE NCC bestehende Mitglieder vorübergehend keine weiteren LIR-Konten eröffnen (RIPE-Zahlungsseite, gelesen am 2026-11-06), ein Mitglied kann einen Block also ohnehin nicht in einem neuen LIR parken. Die ARIN-Gebührenordnung 2027, beschlossen am 19. April 2026, verlangt $288.75 im Jahr für ein /24 (3X-Small) und $577.50 bis /22 (2X-Small), dazu einmalig $187.50 Empfängergebühr für den Transfer eines /24.
Selbst nachmessen: ipv4_asset.js
Das Skript liest das öffentliche IPv4-Transferprotokoll der RIPE NCC, um zu sehen, wie liquide jede Blockgröße ist und wie lange Blöcke bei einem Inhaber bleiben. Dann rechnet es die jährliche Netto-Rendite für ein /24 und ein /22 je nach Registry, mit dem Euro-Kurs der EZB. Die Preise sind datierte Konstanten am Anfang: ändern Sie sie, wenn Sie ein Angebot haben. Speichern als ipv4_asset.js:
// ipv4_asset.js - is an IPv4 block still an investment? Liquidity from RIPE's own transfer log,
// then net lease yield after registry fees for a /24 and a /22.
// usage: bun ipv4_asset.js [transfers.json] (downloads RIPE's log when no file is given)
const LOG = 'https://www-static.ripe.net/dynamic/table-of-transfers/ipv4/transfers-allocations.json'
const BUY = { 24: 25.25, 22: 19.00 } // ip4.market price index, 90-day median $/IP, updated 2026-11-02
const LEASE = { 24: 0.53, 22: 0.58 } // IPv4Center lease page, avg $/IP/month, read 2026-11-06
const RIPE_LIR_EUR = 1894 // RIPE-867: annual fee per LIR account from 2027
const ARIN_RSP = { 24: 288.75, 22: 577.50 } // ARIN 2027 fee schedule, 3X-Small / 2X-Small
const file = process.argv[2]
const log = file ? await Bun.file(file).json() : await (await fetch(LOG)).json()
const ecb = await (await fetch('https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml')).text()
const usdPerEur = +ecb.match(/currency='USD' rate='([\d.]+)'/)[1]
const ecbDate = ecb.match(/time='([\d-]+)'/)[1]
const ip = s => s.split('.').reduce((a, o) => a * 256 + +o, 0)
const size = b => b.includes('/') ? 2 ** (32 - +b.split('/')[1]) : ip(b.split('-')[1].trim()) - ip(b.split('-')[0].trim()) + 1
const day = d => { const [dd, mm, yy] = d.split('/'); return Date.UTC(+yy, mm - 1, +dd) }
const bucket = n => n <= 256 ? '/24' : n <= 1024 ? '/23-/22' : n <= 4096 ? '/21-/20' : n <= 32768 ? '/19-/17' : '/16+'
const rows = log.transfers.map(t => ({ ...t, ts: day(t.date), blocks: t.transferred_blocks.split(',').map(s => s.trim()) }))
const last = new Date(Math.max(...rows.map(r => r.ts))).toISOString().slice(0, 10)
console.log(`RIPE NCC IPv4 transfer log: ${rows.length} entries, newest ${last}`)
// 1. Liquidity: market (POLICY) transfers by block size, 2025 vs 2026 to date
const year = (r, y) => new Date(r.ts).getUTCFullYear() === y
const stats = y => {
const s = {}
for (const r of rows.filter(r => r.transferType === 'POLICY' && year(r, y)))
for (const b of r.blocks) {
const k = bucket(size(b)), o = (s[k] ??= { n: 0, ips: 0, temp: 0 })
o.n++; o.ips += size(b); if (r.transferStatus === 'TEMPORARY') o.temp++
}
return s
}
const s25 = stats(2025), s26 = stats(2026)
console.log('\nblock size | 2025 blocks | 2026 blocks (to ' + last + ') | 2026 addresses | temporary')
for (const k of ['/24', '/23-/22', '/21-/20', '/19-/17', '/16+'])
console.log(`${k.padEnd(10)} | ${String(s25[k]?.n ?? 0).padStart(11)} | ${String(s26[k]?.n ?? 0).padStart(24)} | ${
(s26[k]?.ips ?? 0).toLocaleString('en-US').padStart(14)} | ${String(s26[k]?.temp ?? 0).padStart(9)}`)
// 2. Holding period: the same block sold on again as a whole (permanent market transfers)
const seen = new Map(), holds = []
for (const r of rows.filter(r => r.transferType === 'POLICY' && r.transferStatus === 'PERMANENT').sort((a, b) => a.ts - b.ts))
for (const b of r.blocks) {
if (seen.has(b)) holds.push((r.ts - seen.get(b)) / 864e5)
seen.set(b, r.ts)
}
holds.sort((a, b) => a - b)
const med = holds[Math.floor(holds.length / 2)]
console.log(`\nblocks sold on again whole: ${holds.length} of ${seen.size} (${(100 * holds.length / seen.size).toFixed(1)}%)`)
console.log(`median time between the two sales: ${(med / 365.25).toFixed(1)} years; within 24 months: ${holds.filter(d => d < 730).length}`)
// 3. Net lease yield per year on the purchase price, by registry and occupancy
const usd = v => (v < 0 ? '-$' : '$') + Math.abs(Math.round(v)).toLocaleString('en-US')
console.log(`\nEUR 1 = $${usdPerEur} (ECB, ${ecbDate}); RIPE LIR fee EUR ${RIPE_LIR_EUR} = ${usd(RIPE_LIR_EUR * usdPerEur)}`)
console.log('block | price | lease/yr | held in | fee/yr | net yield 100% | 70% let')
for (const p of [24, 22]) {
const n = 2 ** (32 - p), cost = n * BUY[p], gross = n * LEASE[p] * 12
const fees = { 'a new RIPE LIR': RIPE_LIR_EUR * usdPerEur, 'ARIN (3X/2X-Small)': ARIN_RSP[p], 'an existing LIR': 0 }
const y = (f, occ) => ((100 * (gross * occ - f) / cost).toFixed(1) + '%').padStart(occ === 1 ? 14 : 7)
for (const [k, f] of Object.entries(fees))
console.log(`/${p} | ${usd(cost).padStart(7)} | ${usd(gross).padStart(8)} | ${k.padEnd(20)} | ${usd(f).padStart(6)} | ${y(f, 1)} | ${y(f, 0.7)}`)
}
console.log('fees per year; lease = list average, before the lessor\'s abuse handling and any broker or platform cut')
bun ipv4_asset.js
Ausgabe, ausgeführt auf einem DCXV Cloud-Server mit Bun 1.4.4 am 2026-11-06 (RIPE-Protokoll bis 2026-11-05):
RIPE NCC IPv4 transfer log: 43896 entries, newest 2026-11-05
block size | 2025 blocks | 2026 blocks (to 2026-11-05) | 2026 addresses | temporary
/24 | 1419 | 1010 | 258,560 | 43
/23-/22 | 1622 | 997 | 850,944 | 21
/21-/20 | 453 | 334 | 935,936 | 5
/19-/17 | 214 | 216 | 2,981,888 | 10
/16+ | 53 | 48 | 6,291,456 | 2
blocks sold on again whole: 5041 of 32361 (15.6%)
median time between the two sales: 3.6 years; within 24 months: 0
EUR 1 = $1.1224 (ECB, 2026-11-05); RIPE LIR fee EUR 1894 = $2,126
block | price | lease/yr | held in | fee/yr | net yield 100% | 70% let
/24 | $6,464 | $1,628 | a new RIPE LIR | $2,126 | -7.7% | -15.3%
/24 | $6,464 | $1,628 | ARIN (3X/2X-Small) | $289 | 20.7% | 13.2%
/24 | $6,464 | $1,628 | an existing LIR | $0 | 25.2% | 17.6%
/22 | $19,456 | $7,127 | a new RIPE LIR | $2,126 | 25.7% | 14.7%
/22 | $19,456 | $7,127 | ARIN (3X/2X-Small) | $578 | 33.7% | 22.7%
/22 | $19,456 | $7,127 | an existing LIR | $0 | 36.6% | 25.6%
fees per year; lease = list average, before the lessor's abuse handling and any broker or platform cut
Was die Zahlen sagen
- Die Registry-Gebühr entscheidet bei kleinen Blöcken. Ein /24 bringt zu Listenpreisen $1,628 im Jahr. Ein neuer RIPE-LIR kostet $2,126, der Block macht also selbst voll vermietet Verlust. Derselbe /24 bei ARIN behält 20.7%, in einem LIR, den Sie schon betreiben, die vollen 25.2%. Ein /22 trägt einen RIPE-LIR allein: 25.7% netto bei Vollvermietung.
- Die Auslastung ist das eigentliche Risiko. Bei 70% Vermietung fällt der /24 im bestehenden LIR von 25.2% auf 17.6%, der /22 im neuen LIR von 25.7% auf 14.7%. Ein Monat zwischen zwei Mietern ist ein Monat Gebühren ohne Miete.
- Liquide sind die kleinen Blöcke. Vom 1. Januar bis 5. November 2026 zeigt das RIPE-Protokoll 1,010 /24-Blöcke und 997 Blöcke /23 oder /22 mit neuem Inhaber, gegenüber 48 Blöcken von /16 und größer. Es wechselten weniger /24 als im ganzen Jahr 2025 (1,419), während Blöcke von /19 bis /17 ihren Wert von 2025 schon übertroffen haben (216 zu 214). Ein Transfer kann mehrere Blöcke enthalten; das Skript zählt jeden.
- Inhaber halten Blöcke über Jahre. Von 32,361 am RIPE-Markt als Ganzes verkauften Blöcken wurden 5,041 (15.6%) später als derselbe Block erneut verkauft, im Median 3.6 Jahre nach dem ersten Verkauf, und keiner innerhalb von 24 Monaten: die RIPE-Sperrfrist nach einem Transfer ist in den Daten sichtbar. Planen Sie den Ausstieg mindestens zwei Jahre im Voraus.
- Das Register zeigt die meisten Mieten nicht. Nur 81 der 2,605 Blöcke, die 2026 wechselten, waren befristete RIPE-Transfers. Bei den meisten Mieten bleibt der Vermieter eingetragener Inhaber, aus dem Register lässt sich also nicht zählen, wie viele Blöcke vermietet sind.
Risiken, die die Rendite nicht zeigt
| Risiko | Was es mit der Anlage macht | Was zu prüfen ist |
|---|---|---|
| Preis | Die Korrektur 2025 traf große Blöcke am stärksten | Zum datierten Median kaufen, nicht zum Listenpreis |
| IPv6 | Senkt die Mietnachfrage langsam; Dual Stack hält IPv4 | Wer Ihre Mieter sind und wozu sie IPv4 brauchen |
| Registry-Gebühren | Eine RIPE-Gebühr pro LIR, egal wie viel er hält | Ihre Gebühr pro Block ab 2027 |
| Reputation | Ein schlechter Mieter bringt den Block auf Blacklists | Historie vor dem Kauf, Abuse-Regeln im Mietvertrag |
| Ausstieg | 24 Monate Sperrfrist bei RIPE, Brokergebühr beim Verkauf | Ihre Ausstiegsgröße und ab wann Sie verkaufen dürfen |
Führen Sie vor dem Kauf die Prüfungen aus unserem IPv4-Blacklist-Leitfaden durch: ein Block, der am ersten Tag gelistet ist, verdient nichts, bis er sauber ist. Wenn Sie die Adressen lieber selbst nutzen, rechnet IPv4 mieten oder kaufen dasselbe aus Sicht des Mieters.
Einstieg und Ausstieg mit DCXV
Eine Anlage ist nur so gut wie ihr Ausstieg. Die Brokergebühr von DCXV zahlt die Verkäuferseite: EUR 2.00 pro IP für ein /24 oder /23, EUR 1.00 für /22 bis /19 und EUR 0.50 für /18 bis /14; der Käufer trägt die Treuhandgebühr. Für den /24 oben sind das EUR 512, etwa $575 oder 8.9% seines Preises vom November 2026 (EZB-Kurs vom 2026-11-05); für den /22 EUR 1,024, etwa 5.9%. Wir vermitteln Kauf, Miete und Verkauf in den Regionen von RIPE, ARIN und APNIC und können einen Block, den Sie halten, an Hosting- und Cloud-Kunden vermieten. Senden Sie Blockgröße und Registry an den IPv4-Desk oder an ipv4@dcxv.com.
