¿Sigue siendo IPv4 una inversión en 2026? Rentabilidad neta

¿Sigue siendo IPv4 una inversión en 2026? Rentabilidad neta

¿Sigue siendo IPv4 una inversión en 2026? Rentabilidad neta

Respuesta corta (comprobado el 2026-11-06): sí, como activo de renta, no como apuesta al precio. Un /24 comprado a la mediana de 90 días de ip4.market, $25.25 por IP (índice actualizado el 2026-11-02), cuesta unos $6,464. Alquilado a la media de IPv4Center, $0.53 por IP al mes, genera unos $1,628 al año: 25.2% bruto. El resto lo decide el registro. Dentro de un LIR que ya paga, esa es también la rentabilidad neta; en ARIN queda un 20.7% tras la tarifa de 2027; en un LIR nuevo de RIPE abierto solo para este bloque, la cuota de EUR 1,894 lo convierte en una pérdida del 7.7% anual. Un /22 gana lo suficiente para sostener su propio LIR. Todas las cifras son observaciones fechadas; para una cotización vea precios de IPv4.

Qué cambió desde el desplome de 2025

La prima especulativa desapareció. Nuestras notas de mercado de julio de 2026 situaban un /24 en unos $30 por IP y el alquiler cerca de $0.40 al mes: un 16% bruto. Hasta noviembre de 2026 el precio de compra cayó más que el alquiler, así que la misma cuenta da 25.2%. Los bloques grandes siguen siendo los más baratos por dirección: el índice de ip4.market muestra medianas de 90 días de $19.00 para un /22, $15.97 para un /20 y $12.62 para un /16 (solo dos ventas). Quien compra en 2026 paga por renta, no por un precio que solo sube.

Los costes fijos se movieron en sentido contrario. Desde 2027 el RIPE NCC cobra EUR 1,894 por cuenta LIR según RIPE-867, sin cargo por IP ni por transferencia, y EUR 1,000 de alta (vea qué cambia en el esquema de cuotas de 2027). Desde el 29 de septiembre de 2026 el RIPE NCC tampoco permite, de forma temporal, que los miembros existentes abran cuentas LIR adicionales (página de pagos de RIPE, leída el 2026-11-06), así que un miembro no puede aparcar un bloque en un LIR nuevo. La tarifa de ARIN para 2027, aprobada el 19 de abril de 2026, cobra $288.75 al año por un /24 (3X-Small) y $577.50 hasta un /22 (2X-Small), más una tasa única de $187.50 al receptor por la transferencia de un /24.

Mídalo usted mismo: ipv4_asset.js

El script lee el registro público de transferencias IPv4 del RIPE NCC para ver la liquidez de cada tamaño de bloque y cuánto tiempo siguen los bloques con un mismo titular. Después calcula la rentabilidad neta anual de un /24 y un /22 según el registro, con el tipo de cambio del BCE. Los precios son constantes fechadas al principio: cámbielas cuando tenga una cotización. Guárdelo como 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

Salida, ejecutado en un servidor cloud de DCXV con Bun 1.4.4 el 2026-11-06 (registro de RIPE hasta el 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

Qué dicen los números

  1. La cuota del registro decide en los bloques pequeños. Un /24 genera $1,628 al año a precios de lista. Un LIR nuevo de RIPE cuesta $2,126, así que el bloque pierde dinero incluso alquilado al completo. El mismo /24 en ARIN conserva un 20.7%, y dentro de un LIR que ya tiene, el 25.2% entero. Un /22 sostiene por sí solo un LIR de RIPE: 25.7% neto alquilado al completo.
  2. La ocupación es el verdadero riesgo. Con un 70% alquilado, el /24 en un LIR existente baja del 25.2% al 17.6%, y el /22 en un LIR nuevo del 25.7% al 14.7%. Un mes entre inquilinos es un mes de cuotas sin alquiler.
  3. Los bloques pequeños son los líquidos. Del 1 de enero al 5 de noviembre de 2026 el registro de RIPE muestra 1,010 bloques /24 y 997 bloques /23 o /22 que cambiaron de manos, frente a 48 bloques de /16 o más. Se movieron menos /24 que en todo 2025 (1,419), mientras que los bloques de /19 a /17 ya superan su cifra de 2025 (216 frente a 214). Una transferencia puede llevar varios bloques; el script cuenta cada uno.
  4. Los titulares conservan los bloques durante años. De 32,361 bloques vendidos enteros en el mercado de RIPE, 5,041 (15.6%) se revendieron después como el mismo bloque, con una mediana de 3.6 años tras la primera venta, y ninguno antes de 24 meses: el bloqueo de RIPE tras una transferencia se ve en los datos. Planifique la salida con al menos dos años de antelación.
  5. El registro no muestra la mayoría de los alquileres. Solo 81 de los 2,605 bloques transferidos en 2026 fueron transferencias temporales de RIPE. En la mayoría de los alquileres el arrendador sigue como titular registrado, así que el registro no permite contar cuántos bloques están alquilados.

Riesgos que la rentabilidad no muestra

Riesgo Qué le hace al activo Qué comprobar
Precio La corrección de 2025 golpeó más a los bloques grandes Comprar a una mediana fechada, no a precio de lista
IPv6 Reduce poco a poco la demanda de alquiler; dual stack mantiene IPv4 Quiénes son sus inquilinos y para qué necesitan IPv4
Cuotas del registro Una cuota de RIPE por LIR, tenga lo que tenga Su cuota por bloque desde 2027
Reputación Un mal inquilino puede meter el bloque en listas negras Historial antes de comprar, cláusulas de abuso en el contrato
Salida 24 meses de bloqueo en RIPE, comisión de broker en la venta Tamaño de salida y fecha en que puede vender

Antes de comprar, haga las comprobaciones de nuestra guía de listas negras IPv4: un bloque listado el primer día no gana nada hasta estar limpio. Si prefiere usar las direcciones usted mismo, alquilar o comprar IPv4 hace la misma cuenta desde el lado del inquilino.

Entrada y salida con DCXV

Un activo vale lo que vale su salida. La comisión de broker de DCXV la paga el vendedor: EUR 2.00 por IP para un /24 o /23, EUR 1.00 de /22 a /19 y EUR 0.50 de /18 a /14; el comprador paga el escrow. Para el /24 de arriba son EUR 512, unos $575 o el 8.9% de su precio de noviembre de 2026 (tipo del BCE del 2026-11-05); para el /22, EUR 1,024, alrededor del 5.9%. Intermediamos compras, alquileres y ventas en las regiones de RIPE, ARIN y APNIC y podemos alquilar un bloque suyo a clientes de hosting y cloud. Envíe el tamaño del bloque y el registro al IPv4 desk o a ipv4@dcxv.com.

¿Sigue siendo IPv4 una inversión en 2026? Rentabilidad neta
ipv4pricingripe-ncc

¿Sigue siendo IPv4 una inversión en 2026? Rentabilidad neta

Un /24 rinde un 25% bruto al año a precios de noviembre de 2026, pero la cuota de un LIR nuevo de RIPE lo vuelve pérdida. Rentabilidad, liquidez y salida.

AWS BYOIP en 2026: $43.80 por IPv4 frente a tu propio /24
ipv4pricingcloud

AWS BYOIP en 2026: $43.80 por IPv4 frente a tu propio /24

AWS cobra $0.005 por hora por IPv4 pública, $43.80 al año. BYOIP no paga ese cargo: cuándo se amortiza un /24 comprado o alquilado, con un script de ROA.

Soporte y facturación de AWS: guía verificada para la UE
cloudpricingcompare

Soporte y facturación de AWS: guía verificada para la UE

Planes y precios de soporte de AWS, retrasos de facturación, egress desde Frankfurt, un script de costes y cuándo conviene un proveedor UE de precio fijo.

Altman quiere tu DRAM en el data center: RAM de servidor 2026
cloudaipricinginfrastructure

Altman quiere tu DRAM en el data center: RAM de servidor 2026

Sam Altman dice que la memoria de los PC está ociosa y debe ir al centro de datos. Qué supone la escasez de DRAM de 2026 para servidores y un script para medir.

IPv4 para empresas ucranianas: LIR de RIPE, PI o alquiler
ipv4ripe-ncctransferbroker

IPv4 para empresas ucranianas: LIR de RIPE, PI o alquiler

Tres vías al IPv4 RIPE para una empresa ucraniana: LIR propio, PI o alquiler. Tarifas 2026-2027, datos del registro y qué cambia para un solicitante ucraniano.