Зачем конвертировать IP-адреса?
Компьютеры хранят адрес IPv4 как единое 32-битное число; привычная запись через точки, например 192.168.0.1, — лишь удобный для человека способ записать его четыре байта. Разные инструменты и базы данных используют разные представления:
- Целое число (десятичное): компактное хранение и быстрые запросы по диапазонам в базах данных и файлах геолокации.
192.168.0.1— это3232235521. - Шестнадцатеричное: используется в дампах пакетов, таблицах ядра и некоторых форматах журналов:
0xC0A80001. - Двоичное: необходимо для понимания масок подсетей и CIDR. Каждый бит 1 в маске отмечает сетевую часть.
- IPv4-отображённый IPv6: так программы с двойным стеком представляют клиентов IPv4, например
::ffff:192.168.0.1.
Как работает преобразование
Умножьте каждый октет на вес его разряда и сложите: a × 256³ + b × 256² + c × 256 + d. Для 8.8.8.8 это 8 × 16 777 216 + 8 × 65 536 + 8 × 256 + 8 = 134 744 072. Чтобы вернуться обратно, последовательно делите на 256 и сохраняйте остатки.
Сжатие и расширение IPv6
Адреса IPv6 можно записывать в сокращённой форме: ведущие нули в каждой группе отбрасываются, а одна последовательность нулевых групп заменяется на ::. Конвертер показывает и сжатую форму (2001:db8::1), и полную развёрнутую форму (2001:0db8:0000:0000:0000:0000:0000:0001). Узнайте больше об IPv6.
http://2130706433/ (это 127.0.0.1) или восьмеричные октеты. Злоумышленники используют их, чтобы обходить наивные фильтры, поэтому всегда приводите адреса к нормальному виду, прежде чем их проверять.Часто задаваемые вопросы
Можно ли ввести адрес в двоичном виде?
Да. Введите 32 бита для IPv4 или 128 бит для IPv6, с точками или без них.
Какое самое большое число IPv4?
4294967295, то есть 255.255.255.255 (2³² − 1).
Обновлено