Конвертация IP-адреса в число и обратно
Коротко об инструменте
IPv4-адрес — это 32-битное число, и системы хранят его по-разному: в конфиге роутера вы видите 192.168.1.1, в колонке MySQL типа INT UNSIGNED лежит 3232235777, в дампе трафика — 0xC0A80101. Конвертер переводит запись из любого из четырёх видов в остальные три прямо в браузере: адрес никуда не отправляется. Удобно, когда в логе оказалось голое целое число, а нужно понять, какому узлу сети оно соответствует. Смотрите также: перевести число в другую систему счисления, подобрать регулярку под адреса в логе, расшифровать HEX-значения из дампа.
Каждый октет умножается на свой вес: первый на 16777216, второй на 65536, третий на 256, четвёртый на 1, затем результаты складываются. Для 192.168.1.1 это 192×16777216 + 168×65536 + 1×256 + 1 = 3232235777. Конвертер делает ровно эту арифметику, но без риска ошибиться в разряде — что особенно легко при ручном счёте больших октетов вроде 192 и 255.
Число занимает 4 байта вместо 15 символов, сравнивается за одну операцию и позволяет искать диапазон подсети обычным BETWEEN вместо LIKE по строке. Поэтому в MySQL используют INET_ATON и INT UNSIGNED, в PostgreSQL — тип inet. Обратная сторона: в выгрузке или в дашборде вы видите голое число, и его приходится расшифровывать вот таким конвертером.
Нет. Инструмент рассчитан на IPv4 — четыре октета и соответствующее 32-битное число. IPv6 длиной 128 бит записывается совсем иначе, восемью группами по четыре шестнадцатеричные цифры, со сжатием нулей через двойное двоеточие, и требует отдельной логики разбора. Если вставить адрес вида 2001:db8::1, корректного результата не будет.
В двоичном виде наглядно видна граница подсети. Маска /24 означает, что первые 24 бита — сеть, а последние 8 — хост, и на строке 11000000.10101000.00000001.00000001 эту границу можно отчеркнуть пальцем. Так проще объяснить деление на подсети коллеге или проверить, попадают ли два адреса в один и тот же сегмент.
Нет. Вся арифметика выполняется скриптом на странице, поэтому адрес не покидает вкладку браузера и не попадает ни в какие логи на нашей стороне. После конвертации страницу можно закрыть, и введённое значение исчезнет вместе с ней. Внутренние адреса корпоративной сети можно вводить без опасений.
На телефоне работает: поле ввода и кнопки «Конвертировать» и «Копировать» рассчитаны на узкий экран. Полностью офлайн — нет: страницу нужно один раз загрузить, для этого нужна сеть. Но после загрузки последующие конвертации происходят локально и связь для них уже не требуется.
Неправдоподобного результата вы больше не увидите: адрес с октетом больше 255 вроде 192.168.1.300 и число от 4294967296 и выше конвертер отклоняет с сообщением, а не пересчитывает молча. Если сообщение появилось, ищите лишний символ: пробел в конце строки, точку после последнего октета или потерянный префикс 0x — без него 08080808 читается как десятичное число. Уберите лишнее и нажмите «Конвертировать» ещё раз.
До: 3232235777
После: 192.168.1.1 · 0xC0A80101 · 11000000.10101000.00000001.00000001
До: 8.8.8.8
После: 134744072 · 0x08080808 · 00001000.00001000.00001000.00001000
До: 0x7F000001
После: 127.0.0.1 · 2130706433 · 01111111.00000000.00000000.00000001
Оценка и фидбек помогают понять, что улучшать дальше.