Конвертер форматов IP-адреса

Введите IPv4-адрес, его 32-битное десятичное число, двоичную запись или шестнадцатеричную форму — конвертер сразу покажет тот же адрес во всех четырёх нотациях. Всё считается прямо в браузере, данные никуда не отправляются.

Конвертер форматов IP-адреса

IPv4-адрес — это одно 32-битное число; десятично-точечная запись (192.168.1.1) — лишь самый привычный из нескольких способов записать это число, удобный для человека. Разбитый на 4 октета по 0–255 и упакованный старшим октетом вперёд, тот же адрес — это и обычное 32-битное целое число, и последовательность из 32 двоичных цифр, и 8 шестнадцатеричных цифр — каждая из этих форм встречается где-то в реальных системах. Эта страница — для разработчика, который извлекает значение из строки лога, столбца базы данных или конфигурационного файла и которому нужно перевести его в обычный адрес (или наоборот), не переписывая одноразовый код конвертации ради единственного запроса.

Десятичные целые числа чаще всего встречаются как компактный формат хранения: пара функций MySQL/MariaDB INET_ATON()/INET_NTOA() хранит IPv4-столбец как 4-байтовое целое без знака вместо 15-символьной строки, и многие устаревшие форматы логов и таблиц контроля доступа делают то же самое ради скорости индексации. 192.168.1.1 превращается в 3232235777 точно так же, как считает эта страница: (192 × 256³) + (168 × 256²) + (1 × 256) + 1. Частая ошибка при самостоятельной реализации такой конвертации — трактовать октет с ведущим нулём как восьмеричное число вместо десятичного: некоторые парсеры исторически читают 192.168.010.1 как октет 8 (010 в восьмеричной системе), а не 10 — поэтому конвертер, который молча «исправляет» неоднозначный ввод, хуже того, что просто его отклоняет; эта страница требует строгих, однозначных десятичных октетов на вкладке IP-адреса.

Шестнадцатеричная форма встречается в дампах пакетов, некоторых логах прокси/файрвола и URL, где адрес записан hex-литералом (браузеры до сих пор принимают http://0xC0A80101/ как валидный, пусть и необычный способ записать http://192.168.1.1/). Двоичная форма — здесь всегда показанная как 4 группы по 8 бит через точку, как принято записывать маску подсети или wildcard-маску — в основном полезна, чтобы увидеть, какие именно биты различаются между двумя адресами, или чтобы проверить границу подсети «на глаз», не полагаясь только на арифметику. Все четыре формы описывают одни и те же 32 бита; эта страница никогда не угадывает, какую форму вы имели в виду, помимо выбранной вкладки, а любой некорректный ввод показывается как обычная ошибка, а не молча приводится к ближайшему допустимому значению.

Глоссарий

Десятично-точечная запись
Привычная форма из 4 октетов (192.168.1.1) — каждая из 4 групп это один байт адреса, записанный десятичным числом 0–255, группы разделены точками.
32-битное целое число
Тот же адрес, упакованный в одно целое число без знака 0–4294967295, старший октет первым — форма, которую используют функции баз данных вроде MySQL INET_ATON() и многие устаревшие форматы логов и индексов.
Порядок байтов (сетевой порядок)
Соглашение, что первый записанный (самый левый) октет — старший байт числа — «сетевой порядок байтов», или big-endian. Чтение байтов в обратном порядке молча даёт совершенно другой, но всё ещё внешне корректный адрес.
Шестнадцатеричная (hex) форма
32-битное число, записанное по основанию 16 (0xC0A80101), 8 hex-цифр — по одной на каждые 4 бита — часто встречается в дампах пакетов и некоторых логах прокси/файрвола.
Двоичная запись по октетам
Адрес, записанный как 4 группы по 8 двоичных цифр (11000000.10101000.00000001.00000001) — так же, как принято записывать маску подсети или wildcard-маску.
Неоднозначность ведущего нуля
Некоторые устаревшие парсеры трактуют октет с ведущим нулём (010) как восьмеричное число вместо десятичного, молча читая его как 8 вместо 10 — реальный источник ошибок разбора адресов в разных библиотеках и языках.

Часто задаваемые вопросы

Почему 192.168.1.1 равен 3232235777 как десятичное число?
Потому что это те же самые 32 бита, просто прочитанные как одно число вместо 4 отдельных байтов: (192 × 256³) + (168 × 256²) + (1 × 256) + 1 = 3232235777. Именно это вычисляет функция MySQL/MariaDB INET_ATON(), когда вы храните IPv4-адрес как целочисленный столбец.
Принимает ли этот конвертер IPv6-адреса?
Нет — эта страница только для конвертации IPv4 в десятичную/двоичную/hex-форму. Собственные компактная и полная записи IPv6 — отдельная задача, для неё есть калькулятор подсетей IPv6.
Почему мой двоичный ввод был отклонён?
Вкладке «Двоичное» нужны ровно 32 двоичные цифры — либо как 4 группы по 8 через точку (11000000.10101000.00000001.00000001), либо как одна непрерывная строка из 32 символов 0 и 1; любое другое количество цифр или символ, отличный от 0/1, показывается как ошибка, а не угадывается.
Почему 192.168.010.1 конвертируется не так, как я ожидал?
Некоторые библиотеки исторически трактуют ведущий ноль как восьмеричный префикс, поэтому 010 превращается в 8 вместо 10 — реальный, задокументированный источник несогласованности между инструментами при разборе адресов. Этот конвертер требует обычных десятичных октетов на вкладке IP-адреса и не угадывает восьмеричное прочтение.
Отправляет ли этот инструмент мой IP-адрес куда-либо?
Нет. Любая конвертация на этой странице выполняется полностью в вашем браузере обычной арифметикой; ничего из введённого здесь не отправляется на наши серверы или куда-либо ещё.
Какое максимальное значение принимает вкладка «Десятичное»?
4294967295 (2³² − 1), что соответствует 255.255.255.255 — максимально возможному IPv4-адресу. Всё, что больше, или отрицательное число, отклоняется как выходящее за диапазон.

API-эквивалент

Конвертации выше полностью выполняются на вашем устройстве — эта страница не делает ни одного сетевого запроса для расчёта результата. Если вам нужно вместо этого получить факты о реальном, маршрутизируемом IP-адресе на стороне сервера как часть более крупного запроса (а не просто изменить его формат), наш основной API возвращает полные сетевые/RDAP-факты о нём:

curl
curl "https://ip.xakki.pro/api/v1/ip?ip=192.168.1.1&include=network"

Пример ответа (сокращённо):

{
  "schemaVersion": 15,
  "status": "ok",
  "ip": "192.168.1.1",
  "version": 4,
  "flags": {
    "isPrivate": true
  }
}

Читать полную документацию по API

Понравился инструмент? Бесплатный аккаунт нашего API даёт 1000 запросов в день.Смотреть документацию API →