IPv4 все еще инвестиция в 2026? Доходность после сборов
Коротко (проверено 2026-11-06): да, как доходный актив, а не как ставка на цену. Блок /24, купленный по 90-дневной медиане ip4.market $25.25 за IP (индекс обновлен 2026-11-02), стоит около $6,464. В аренде по средней ставке IPv4Center $0.53 за IP в месяц он приносит около $1,628 в год: 25.2% брутто. Остальное решает реестр. В LIR, за который вы уже платите, это и чистая доходность; в ARIN после сбора 2027 года остается 20.7%; в новом LIR в RIPE, открытом только под этот блок, взнос EUR 1,894 превращает его в убыток 7.7% в год. Блок /22 зарабатывает достаточно, чтобы содержать собственный LIR. Все цифры - датированные наблюдения; за расчетом обращайтесь на страницу цены на IPv4.
Что изменилось после обвала 2025 года
Спекулятивной премии больше нет. В наших рыночных заметках за июль 2026 /24 стоил около $30 за IP, а аренда была около $0.40 в месяц: 16% брутто. К ноябрю 2026 цена покупки упала сильнее аренды, и тот же расчет дает 25.2%. Крупные блоки по-прежнему самые дешевые в пересчете на адрес: индекс ip4.market показывает 90-дневные медианы $19.00 для /22, $15.97 для /20 и $12.62 для /16 (всего две продажи). Покупатель в 2026 году платит за доход, а не за цену, которая только растет.
Фиксированные расходы двинулись в другую сторону. С 2027 года RIPE NCC берет EUR 1,894 за каждый счет LIR по RIPE-867, без платы за IP или за трансфер, вступительный взнос EUR 1,000 (см. что изменилось в схеме взносов 2027). С 29 сентября 2026 RIPE NCC также временно не дает действующим членам открывать дополнительные счета LIR (страница оплаты RIPE, прочитано 2026-11-06), так что "припарковать" блок в новом LIR член все равно не сможет. Тарифы ARIN на 2027 год, утвержденные 19 апреля 2026, - $288.75 в год за /24 (3X-Small) и $577.50 до /22 включительно (2X-Small), плюс разовый сбор с получателя $187.50 за трансфер /24.
Измерьте сами: ipv4_asset.js
Скрипт читает публичный журнал трансферов IPv4 от RIPE NCC, чтобы увидеть ликвидность каждого размера блока и сколько блоки остаются у одного владельца. Затем он считает чистую годовую доходность для /24 и /22 в зависимости от реестра, по курсу евро от ЕЦБ. Цены заданы датированными константами в начале: измените их, когда получите расчет. Сохраните как 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
Вывод: запуск на облачном сервере DCXV, Bun 1.4.4, 2026-11-06 (журнал RIPE до 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
Что говорят цифры
- Сбор реестра решает судьбу малых блоков. /24 приносит $1,628 в год по прейскурантным ставкам. Новый LIR в RIPE стоит $2,126, так что блок убыточен даже при полной аренде. Тот же /24 в ARIN сохраняет 20.7%, а в LIR, который у вас уже есть, все 25.2%. Блок /22 сам содержит LIR в RIPE: 25.7% чистыми при полной аренде.
- Загрузка - главный риск доходности. При 70% в аренде /24 в действующем LIR падает с 25.2% до 17.6%, а /22 в новом LIR с 25.7% до 14.7%. Месяц между арендаторами - это месяц сборов без аренды.
- Ликвидны именно малые блоки. С 1 января по 5 ноября 2026 журнал RIPE показывает 1,010 блоков /24 и 997 блоков /23 или /22, сменивших владельца, против 48 блоков /16 и крупнее. /24 перешло меньше, чем за весь 2025 год (1,419), а блоки от /19 до /17 уже превысили показатель 2025 года (216 против 214). Один трансфер может включать несколько блоков; скрипт считает каждый.
- Владельцы держат блоки годами. Из 32,361 блока, проданного целиком на рынке RIPE, 5,041 (15.6%) позже продали снова тем же блоком, в медиане через 3.6 года после первой продажи, и ни одного в течение 24 месяцев: запрет RIPE на повторный трансфер виден в данных. Планируйте выход минимум на два года вперед.
- Реестр не показывает большинство аренд. Лишь 81 из 2,605 блоков, перешедших в 2026 году, были временными трансферами RIPE. В большинстве аренд зарегистрированным владельцем остается арендодатель, поэтому посчитать по реестру, сколько блоков сдано, нельзя.
Риски, которых не видно в доходности
| Риск | Что он делает с активом | Что проверить |
|---|---|---|
| Цена | Коррекция 2025 года сильнее всего ударила по крупным блокам | Покупать по датированной медиане, а не по прайсу |
| IPv6 | Постепенно снижает спрос на аренду; dual stack держит IPv4 | Кто ваши арендаторы и зачем им IPv4 |
| Сборы реестра | Один взнос RIPE за LIR, независимо от объема | Ваш сбор на блок с 2027 года |
| Репутация | Один плохой арендатор может внести блок в черные списки | Историю до покупки, условия по abuse в договоре |
| Выход | 24 месяца запрета в RIPE, брокерская комиссия при продаже | Размер блока на выход и дату, когда можно продать |
Перед покупкой пройдите проверки из нашего руководства по черным спискам IPv4: блок в списках с первого дня ничего не зарабатывает, пока его не очистят. Если хотите использовать адреса сами, аренда или покупка IPv4 делает тот же расчет со стороны арендатора.
Вход и выход с DCXV
Актив стоит столько, сколько его выход. Брокерскую комиссию DCXV платит продавец: EUR 2.00 за IP для /24 или /23, EUR 1.00 для /22-/19 и EUR 0.50 для /18-/14; покупатель оплачивает эскроу. Для /24 выше это EUR 512, около $575 или 8.9% его цены ноября 2026 (курс ЕЦБ на 2026-11-05); для /22 это EUR 1,024, около 5.9%. Мы сопровождаем покупку, аренду и продажу в регионах RIPE, ARIN и APNIC и можем сдать ваш блок в аренду хостинговым и облачным клиентам. Пришлите размер блока и реестр на IPv4-деск или на ipv4@dcxv.com.
