IT Market
Инструменты/Веб/Сеть/Конвертер IP-адреса в число и обратно онлайн
IP Конвертер

Конвертация IP-адреса в число и обратно

Коротко об инструменте

Конвертер IP-адреса в число и обратно онлайн

IPv4-адрес — это 32-битное число, и системы хранят его по-разному: в конфиге роутера вы видите 192.168.1.1, в колонке MySQL типа INT UNSIGNED лежит 3232235777, в дампе трафика — 0xC0A80101. Конвертер переводит запись из любого из четырёх видов в остальные три прямо в браузере: адрес никуда не отправляется. Удобно, когда в логе оказалось голое целое число, а нужно понять, какому узлу сети оно соответствует. Смотрите также: перевести число в другую систему счисления, подобрать регулярку под адреса в логе, расшифровать HEX-значения из дампа.

Как пользоваться

  1. Вставьте адрес в поле «IP адрес или число» — подойдёт и точечная запись 192.168.1.1, и целое число 3232235777.
  2. Шестнадцатеричное значение вводите с префиксом 0x, двоичное — как строку из нулей и единиц; формат определяется автоматически.
  3. Нажмите «Конвертировать» — под полем появятся все остальные представления того же адреса.
  4. Сверьте десятичное число: для 192.168.1.1 оно равно 3232235777, это контрольная точка при отладке.
  5. Нажмите «Копировать», чтобы забрать результат в SQL-запрос, конфиг или тикет.
  6. Чтобы проверить следующий адрес, очистите поле и повторите — страница не перезагружается.

Вопросы и ответы

Как перевести IP-адрес в десятичное число вручную?

Каждый октет умножается на свой вес: первый на 16777216, второй на 65536, третий на 256, четвёртый на 1, затем результаты складываются. Для 192.168.1.1 это 192×16777216 + 168×65536 + 1×256 + 1 = 3232235777. Конвертер делает ровно эту арифметику, но без риска ошибиться в разряде — что особенно легко при ручном счёте больших октетов вроде 192 и 255.

Зачем в базе данных хранить IP числом, а не строкой?

Число занимает 4 байта вместо 15 символов, сравнивается за одну операцию и позволяет искать диапазон подсети обычным BETWEEN вместо LIKE по строке. Поэтому в MySQL используют INET_ATON и INT UNSIGNED, в PostgreSQL — тип inet. Обратная сторона: в выгрузке или в дашборде вы видите голое число, и его приходится расшифровывать вот таким конвертером.

Поддерживаются ли адреса IPv6?

Нет. Инструмент рассчитан на IPv4 — четыре октета и соответствующее 32-битное число. IPv6 длиной 128 бит записывается совсем иначе, восемью группами по четыре шестнадцатеричные цифры, со сжатием нулей через двойное двоеточие, и требует отдельной логики разбора. Если вставить адрес вида 2001:db8::1, корректного результата не будет.

Зачем нужен двоичный вид адреса?

В двоичном виде наглядно видна граница подсети. Маска /24 означает, что первые 24 бита — сеть, а последние 8 — хост, и на строке 11000000.10101000.00000001.00000001 эту границу можно отчеркнуть пальцем. Так проще объяснить деление на подсети коллеге или проверить, попадают ли два адреса в один и тот же сегмент.

Данные адреса куда-то передаются при конвертации?

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

Работает ли конвертер на телефоне и без интернета?

На телефоне работает: поле ввода и кнопки «Конвертировать» и «Копировать» рассчитаны на узкий экран. Полностью офлайн — нет: страницу нужно один раз загрузить, для этого нужна сеть. Но после загрузки последующие конвертации происходят локально и связь для них уже не требуется.

Что делать, если результат выглядит неправдоподобно?

Неправдоподобного результата вы больше не увидите: адрес с октетом больше 255 вроде 192.168.1.300 и число от 4294967296 и выше конвертер отклоняет с сообщением, а не пересчитывает молча. Если сообщение появилось, ищите лишний символ: пробел в конце строки, точку после последнего октета или потерянный префикс 0x — без него 08080808 читается как десятичное число. Уберите лишнее и нажмите «Конвертировать» ещё раз.

Примеры

Число из колонки MySQL INT UNSIGNED
До: 3232235777
После: 192.168.1.1 · 0xC0A80101 · 11000000.10101000.00000001.00000001
Публичный DNS-резолвер для правила фаервола
До: 8.8.8.8
После: 134744072 · 0x08080808 · 00001000.00001000.00001000.00001000
Шестнадцатеричный адрес из дампа пакетов
До: 0x7F000001
После: 127.0.0.1 · 2130706433 · 01111111.00000000.00000000.00000001