IPv4 reste-t-il un investissement en 2026 ? Rendement net

IPv4 reste-t-il un investissement en 2026 ? Rendement net

IPv4 reste-t-il un investissement en 2026 ? Rendement net

En bref (vérifié le 2026-11-06) : oui, comme actif de rendement, pas comme pari sur le prix. Un /24 acheté à la médiane sur 90 jours d'ip4.market, $25.25 par IP (indice mis à jour le 2026-11-02), coûte environ $6,464. Loué à la moyenne d'IPv4Center, $0.53 par IP et par mois, il rapporte environ $1,628 par an : 25.2% brut. Le registre décide du reste. Dans un LIR que vous payez déjà, c'est aussi le rendement net ; chez ARIN il reste 20.7% après le tarif 2027 ; dans un nouveau LIR RIPE ouvert pour ce seul bloc, la cotisation de EUR 1,894 en fait une perte de 7.7% par an. Un /22 rapporte assez pour porter son propre LIR. Tous les chiffres sont des observations datées ; pour un devis, voir prix IPv4.

Ce qui a changé depuis la chute de 2025

La prime spéculative a disparu. Nos notes de marché de juillet 2026 plaçaient un /24 vers $30 par IP et la location près de $0.40 par mois : 16% brut. En novembre 2026 le prix d'achat a baissé plus que le loyer, et le même calcul donne 25.2%. Les grands blocs restent les moins chers par adresse : l'indice ip4.market affiche des médianes sur 90 jours de $19.00 pour un /22, $15.97 pour un /20 et $12.62 pour un /16 (deux ventes seulement). En 2026, l'acheteur paie un revenu, pas un prix qui ne ferait que monter.

Les coûts fixes ont évolué dans l'autre sens. À partir de 2027, le RIPE NCC facture EUR 1,894 par compte LIR selon RIPE-867, sans frais par IP ni par transfert, avec EUR 1,000 d'adhésion (voir ce qui change dans le barème 2027). Depuis le 29 septembre 2026, le RIPE NCC empêche aussi temporairement les membres existants d'ouvrir des comptes LIR supplémentaires (page de paiement RIPE, lue le 2026-11-06) : un membre ne peut donc pas garer un bloc dans un nouveau LIR. Le barème ARIN 2027, adopté le 19 avril 2026, demande $288.75 par an pour un /24 (3X-Small) et $577.50 jusqu'à un /22 (2X-Small), plus des frais uniques de $187.50 au destinataire pour le transfert d'un /24.

Mesurez vous-même : ipv4_asset.js

Le script lit le journal public des transferts IPv4 du RIPE NCC pour voir la liquidité de chaque taille de bloc et combien de temps les blocs restent chez un même titulaire. Il calcule ensuite le rendement net annuel d'un /24 et d'un /22 selon le registre, avec le taux de change de la BCE. Les prix sont des constantes datées en tête du fichier : changez-les quand vous avez un devis. Enregistrez-le sous 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

Sortie, exécuté sur un serveur cloud DCXV avec Bun 1.4.4 le 2026-11-06 (journal RIPE jusqu'au 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

Ce que disent les chiffres

  1. La cotisation du registre tranche pour les petits blocs. Un /24 rapporte $1,628 par an aux tarifs affichés. Un nouveau LIR RIPE coûte $2,126 : le bloc perd de l'argent même loué en entier. Le même /24 chez ARIN garde 20.7%, et dans un LIR que vous avez déjà, les 25.2% entiers. Un /22 porte seul un LIR RIPE : 25.7% net loué en entier.
  2. Le taux d'occupation est le vrai risque. À 70% loué, le /24 dans un LIR existant passe de 25.2% à 17.6%, et le /22 dans un nouveau LIR de 25.7% à 14.7%. Un mois entre deux locataires, c'est un mois de frais sans loyer.
  3. Les petits blocs sont les plus liquides. Du 1er janvier au 5 novembre 2026, le journal RIPE montre 1,010 blocs /24 et 997 blocs /23 ou /22 ayant changé de main, contre 48 blocs de /16 ou plus. Moins de /24 ont circulé que sur toute l'année 2025 (1,419), alors que les blocs de /19 à /17 dépassent déjà leur total de 2025 (216 contre 214). Un transfert peut porter plusieurs blocs ; le script compte chacun.
  4. Les titulaires gardent leurs blocs des années. Sur 32,361 blocs vendus entiers sur le marché RIPE, 5,041 (15.6%) ont ensuite été revendus tels quels, en médiane 3.6 ans après la première vente, et aucun avant 24 mois : le délai de blocage RIPE après un transfert se voit dans les données. Prévoyez la sortie au moins deux ans à l'avance.
  5. Le registre ne montre pas la plupart des locations. Seuls 81 des 2,605 blocs transférés en 2026 étaient des transferts temporaires RIPE. Dans la plupart des locations, le bailleur reste titulaire enregistré : le registre ne permet pas de compter les blocs loués.

Les risques que le rendement ne montre pas

Risque Effet sur l'actif À vérifier
Prix La correction de 2025 a frappé surtout les grands blocs Acheter à une médiane datée, pas à un prix affiché
IPv6 Réduit lentement la demande de location ; le dual stack garde IPv4 Qui sont vos locataires et pourquoi ils ont besoin d'IPv4
Frais du registre Une cotisation RIPE par LIR, quel que soit son contenu Votre coût par bloc à partir de 2027
Réputation Un mauvais locataire peut faire blacklister le bloc L'historique avant achat, les clauses abuse du bail
Sortie 24 mois de blocage chez RIPE, commission de courtage à la vente Votre taille de sortie et la date où vous pouvez vendre

Avant d'acheter, faites les vérifications de notre guide des listes noires IPv4 : un bloc listé dès le premier jour ne rapporte rien tant qu'il n'est pas propre. Si vous préférez utiliser les adresses vous-même, location ou achat d'IPv4 fait le même calcul côté locataire.

Entrer et sortir avec DCXV

Un actif ne vaut que par sa sortie. La commission de courtage de DCXV est payée par le vendeur : EUR 2.00 par IP pour un /24 ou /23, EUR 1.00 de /22 à /19 et EUR 0.50 de /18 à /14 ; l'acheteur paie le séquestre. Pour le /24 ci-dessus, cela fait EUR 512, environ $575 ou 8.9% de son prix de novembre 2026 (taux BCE du 2026-11-05) ; pour le /22, EUR 1,024, environ 5.9%. Nous accompagnons achats, locations et ventes dans les régions RIPE, ARIN et APNIC et pouvons louer un bloc que vous détenez à des clients d'hébergement et de cloud. Envoyez la taille du bloc et le registre au desk IPv4 ou à ipv4@dcxv.com.

IPv4 reste-t-il un investissement en 2026 ? Rendement net
ipv4pricingripe-ncc

IPv4 reste-t-il un investissement en 2026 ? Rendement net

Un /24 rapporte 25% brut par an aux prix de novembre 2026, mais la cotisation d'un nouveau LIR RIPE le rend perdant. Rendement net, liquidité, sortie.

AWS BYOIP en 2026 : $43.80 par IPv4 ou votre propre /24
ipv4pricingcloud

AWS BYOIP en 2026 : $43.80 par IPv4 ou votre propre /24

AWS facture $0.005 de l'heure par IPv4 publique, $43.80 par an. BYOIP échappe à ce coût : quand un /24 acheté ou loué est rentable, avec un script de ROA.

Support et facturation AWS : guide vérifié pour équipes UE
cloudpricingcompare

Support et facturation AWS : guide vérifié pour équipes UE

Plans de support AWS et prix, retards de facturation, egress depuis Francfort, un script de contrôle des coûts et quand un hébergeur UE à prix fixe convient.

Altman veut votre DRAM au data center : RAM serveur 2026
cloudaipricinginfrastructure

Altman veut votre DRAM au data center : RAM serveur 2026

Sam Altman juge que la mémoire des PC dort et doit aller au data center. Ce que la pénurie de DRAM de 2026 change pour vos serveurs, et un script pour mesurer.

IPv4 pour entreprises ukrainiennes : LIR, PI ou location
ipv4ripe-ncctransferbroker

IPv4 pour entreprises ukrainiennes : LIR, PI ou location

Trois voies vers l'IPv4 RIPE pour une entreprise ukrainienne : LIR, PI ou location. Frais 2026-2027, données du registre et spécificités du dossier ukrainien.