IP конвертер
Конвертируйте IPv4 в десятичный, двоичный, HEX, восьмеричный формат.
IP конвертер
Конвертируйте IPv4 в обе стороны: из записи с точками в десятичное число, двоичный, HEX и восьмеричный вид — и обратно, из числа, HEX или двоичного вида в обычный IP.
Как пользоваться
- Введите IPv4 (например, 192.168.1.1) или число в десятичном, HEX либо двоичном виде
- Инструмент преобразует IP в десятичный, двоичный, HEX и восьмеричный форматы
- Скопируйте нужное представление IP-адреса из результатов
FAQ
IP address to binary/hex converter: как читать результат
Конвертер принимает IPv4-адрес в обычной записи с точками (192.168.1.1) и показывает его в четырёх представлениях: десятичное число (decimal), двоичная запись по октетам (binary), шестнадцатеричная (HEX) и восьмеричная (octal). Ниже — таблица октетов, где каждый из четырёх байтов адреса разложен в Dec, Bin и Hex, класс сети и пометка, частный ли это адрес. Любое значение копируется кнопкой.
Для 192.168.1.1 результат такой:
| Формат | Значение | Где встречается |
|---|---|---|
| Decimal | 3232235777 | Поля INT UNSIGNED в базах, логи, API, GeoIP-базы |
| Binary | 11000000.10101000.00000001.00000001 | Расчёт масок и подсетей вручную |
| HEX | 0xC0A80101 | Дампы пакетов, /proc/net в Linux, прошивки, код |
| Octal | 300.250.1.1 | Редко; учебные задачи и обфускация адресов |
Восьмеричные октеты выводятся без ведущего нуля. Если вы подставляете их туда, где разбирается адрес (ping, браузер, inet_aton), нужен префикс: 0300.0250.01.01. Без нуля строка 300.250.1.1 будет прочитана как обычный десятичный адрес и отклонена как некорректная.
IPv4 — это одно 32-битное число
Запись с точками — лишь удобная форма. Внутри адрес — 32 бита, разбитые на четыре октета по 8 бит, каждый от 0 до 255. Все остальные форматы — то же число в другой системе счисления. Поэтому любое преобразование сводится к двум операциям: собрать октеты в число и разобрать число на октеты.
IP в десятичное число и обратно (decimal to IP address)
Формула: A×16777216 + B×65536 + C×256 + D, где 16777216 = 256³, 65536 = 256².
192×16777216 = 3221225472
168×65536 = 11010048
1×256 = 256
1 = 1
-------------------------
3232235777
Обратно — целочисленное деление с остатком:
3232235777 ÷ 16777216 = 192, остаток 11010305
11010305 ÷ 65536 = 168, остаток 257
257 ÷ 256 = 1, остаток 1
→ 192.168.1.1
Именно так конвертер считает decimal; обратное направление (decimal to IP) он не выполняет, поэтому для него пригодится эта схема или команды ниже.
IP в двоичный код и binary to IP
Каждый октет переводится отдельно и дополняется нулями слева до восьми знаков. Веса разрядов: 128, 64, 32, 16, 8, 4, 2, 1.
172 = 128 + 32 + 8 + 4 → 10101100 16 = 16 → 00010000 5 = 4 + 1 → 00000101 10 = 8 + 2 → 00001010 172.16.5.10 → 10101100.00010000.00000101.00001010
Binary to IP — в обратном порядке: разбейте 32 бита на группы по восемь (если точек нет — отсчитывайте с начала строки) и сложите веса единичных разрядов в каждой группе. Ведущие нули терять нельзя: 101 в третьей группе — это 5, но если «съесть» нули при склейке строки, все последующие октеты сдвинутся.
Двоичный вид нужен, чтобы понять маску подсети. /26 — это 26 единиц и 6 нулей: 11111111.11111111.11111111.11000000 = 255.255.255.192. Сеть, маску и диапазон адресов посчитает калькулятор подсетей, а разбиение диапазонов на блоки — CIDR-калькулятор.
IP в HEX и hex to IP
Каждый октет — две шестнадцатеричные цифры: 192 = C0, 168 = A8, 1 = 01. Склеиваем: C0A80101, с префиксом — 0x, как в отчёте. Hex to IP: разбейте строку на пары и переведите каждую в десятичное число (C0 = 12×16 + 0 = 192). Если в записи меньше восьми цифр, сначала дополните её нулями слева: 0x8080808 → 08080808 → 8.8.8.8.
Ловушка: обратный порядок байтов
В Linux-файлах /proc/net/route и /proc/net/tcp адреса записаны в HEX, но в порядке байтов процессора (little-endian). Шлюз 0101A8C0 из /proc/net/route — это не 1.1.168.192, а 192.168.1.1: пары читаются с конца. Если hex to decimal IP даёт явную бессмыслицу, попробуйте развернуть байты.
Шпаргалка: частые значения октетов
Эти числа встречаются в адресах и масках постоянно, и их полезно узнавать сразу. 128, 192, 224, 240, 248, 252, 254, 255 — все возможные значения октета маски: единицы в них идут подряд слева.
| Dec | Binary | HEX |
|---|---|---|
| 0 | 00000000 | 00 |
| 1 | 00000001 | 01 |
| 10 | 00001010 | 0A |
| 127 | 01111111 | 7F |
| 128 | 10000000 | 80 |
| 168 | 10101000 | A8 |
| 172 | 10101100 | AC |
| 192 | 11000000 | C0 |
| 224 | 11100000 | E0 |
| 240 | 11110000 | F0 |
| 248 | 11111000 | F8 |
| 252 | 11111100 | FC |
| 255 | 11111111 | FF |
В Excel и Google Таблицах октет переводится формулами =DEC2BIN(A1;8) и =DEC2HEX(A1;2), обратно — =BIN2DEC() и =HEX2DEC(). Для целого адреса разбейте его на октеты через «Текст по столбцам» с разделителем-точкой.
Конвертация IP в коде и в терминале
# Python
import ipaddress
int(ipaddress.IPv4Address('192.168.1.1')) # 3232235777
str(ipaddress.IPv4Address(3232235777)) # '192.168.1.1'
str(ipaddress.IPv4Address(0xC0A80101)) # '192.168.1.1'
str(ipaddress.IPv4Address(int('10101100000100000000010100001010', 2))) # '172.16.5.10'
# PHP
sprintf('%u', ip2long('192.168.1.1')); // 3232235777
long2ip(3232235777); // 192.168.1.1
# MySQL
SELECT INET_ATON('192.168.1.1'), INET_NTOA(3232235777);
# Bash: IP → HEX
printf '%02X' 192 168 1 1; echo # C0A80101
В PHP ip2long() на 32-битных сборках возвращает отрицательное число для адресов от 128.0.0.0 — поэтому выводите его через sprintf('%u'). В базе храните IPv4 как INT UNSIGNED: 4 байта вместо 15 символов строки и быстрый поиск по диапазону BETWEEN.
Числовые формы адреса в браузере и почему это важно
Парсеры адресов (и браузеры по стандарту URL) принимают IPv4 не только с точками: http://3232235777/, http://0xC0A80101/ и http://0300.0250.01.01/ ведут на один и тот же 192.168.1.1. Этим пользуются фишинговые ссылки, чтобы спрятать адрес, и атаки SSRF — для обхода фильтров вида «запретить 127.0.0.1». Если вы проверяете адреса в своём коде, сначала нормализуйте их до 32-битного числа, а уже потом сравнивайте с чёрным списком.
Класс сети и частные адреса
Поле «Класс сети» показывает историческую классовую схему по первому октету: A — 0–127, B — 128–191, C — 192–223, D — 224–239 (multicast), E — 240–255 (резерв). С 1993 года маршрутизация бесклассовая (CIDR), поэтому класс — справочная информация, а не реальный размер сети. Флаг «Приватный IP» отмечает диапазоны RFC 1918: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16. Такие адреса не маршрутизируются в интернете: ваш внешний адрес показывает «Мой IP», а IP сайта — IP домена.
Коротко об IPv6
Конвертер работает только с IPv4. IPv6 — 128 бит, восемь групп по четыре HEX-цифры: 2001:0db8:0000:0000:0000:0000:0000:0001. Ведущие нули в группе опускаются, одна серия нулевых групп сворачивается в :: — получается 2001:db8::1. Двоичная и десятичная формы IPv6 на практике почти не используются: 128-битное число неудобно и в записи, и в базе. IPv4 внутри IPv6 записывается как ::ffff:192.168.1.1, то же самое в HEX — ::ffff:c0a8:101.