проекты/stend-ipcalc

Калькулятор IPv4

Интерактивный калькулятор адресов: маска, сеть, широковещательный, первый и последний узел, деление на подсети. С разбором формул и двоичным видом каждого шага.

автор: nxerdiобновлён 4 сен 2026 · 14:527 просмотров

Интерактивный разбор адреса IPv4: маска, сеть, широковещательный, границы диапазона и деление на подсети — с формулами и двоичным видом каждого шага.

Открыть калькулятор →

Вводите адрес с префиксом — получаете всё остальное: маску, обратную маску, адрес сети, широковещательный, первый и последний узел, размер сети и назначение диапазона. Ползунок двигает границу сети по битам, кнопки делят сеть на равные части.

Считается на месте, в браузере. Ни один адрес никуда не отправляется: сервер отдаёт страницу и больше в вычислениях не участвует.

Что понимает поле ввода

Запись Пример
адрес с префиксом 185.135.41.5/24
адрес с маской через пробел 172.16.20.55 255.255.240.0
голый адрес 10.0.0.7 — считается как /32

Неправильную маску калькулятор не принимает: 255.255.0.255 записывается, но маской не является — единицы в ней обязаны идти подряд. Адрес с ведущим нулём (10.0.0.010) тоже отвергается: часть систем читает такой октет как восьмеричное число, и адрес молча означал бы не то, что написано.

Что он показывает

  • Адрес: узел, префикс, маска, обратная маска для правил ACL и OSPF.
  • Сеть: адрес сети, широковещательный, первый и последний узел. У /31 широковещательного нет — оба адреса рабочие, это звено между маршрутизаторами по RFC 3021. У /32 сети нет вовсе, это один узел.
  • Размер: всего адресов, сколько из них можно раздать, рабочий диапазон.
  • Назначение: частный, CGNAT, петля, link-local, многоадресный или публичный — с указанием документа, который занял диапазон.
  • Двоичный вид адреса, маски и сети: сетевая часть цветом, узловая приглушённо. Видно, где именно проходит граница.
  • Деление на подсети: одна кнопка — и /24 превращается в четыре /26 с готовыми диапазонами.

На чём всё держится

Шесть формул, всё остальное из них выводится:

маска      = 2³² − 2⁽³²⁻ᵖ⁾
сеть       = адрес AND маска
wildcard   = NOT маска
bcast      = сеть OR wildcard
всего      = 2⁽³²⁻ᵖ⁾
узлам      = 2⁽³²⁻ᵖ⁾ − 2

Отсюда же следует то, что новичка обычно удивляет: любой адрес из сети даёт один и тот же адрес сети, поэтому 185.135.41.5/24 и 185.135.41.200/24 — это одна и та же сеть 185.135.41.0/24.

На странице каждая формула разобрана отдельно, с примером в битах. Рядом — справочник префиксов от /8 до /32, таблица занятых диапазонов и шесть ошибок, которые стоят вечера: от «172.x — это частный диапазон» (нет, только 172.16–172.31) до разных масок на одном сегменте.

Как проверялось

Арифметика вынесена в отдельный модуль без единой строчки про интерфейс, и на неё написаны тесты: границы /0, /30, /31, /32, маски с разрывом, ведущие нули, определение частных диапазонов, деление сети на части. Числа на странице берутся из тех же функций, что и в тестах, — разойтись им негде.

Файлы и релизы

К проекту пока не приложено файлов.

Обсуждение · 0

Пока тихо. Будь первым.

Войди, чтобы оставить комментарий.