Сколько символов может содержать IP-адрес?

Сколько символов может содержать IP-адрес?

Мне нужно создать поле в таблице mysql для хранения IP-адресов. Мне нужно знать максимальное количество символов, которое может содержать IP-адрес. Будь то ipv4, ipv6 или какой-либо другой тип, который может сделать допустимый IP-адрес необычно длинным. Так какое ограничение на количество символов мне следует установить?

Я спрашиваю о длине в том смысле, что слово «foo» состоит из 3 символов, а не в байтах или чем-то подобном.

решение1

Адрес IPv6 в самом длинном случае будет состоять из 8 наборов по 4 символа (всего 32), каждый набор будет разделен двоеточием. Это составляет 39 символов.

Адрес IPv4 состоит максимум из 4 наборов по 3 цифры (12 символов), каждый набор разделен точкой (.). Это составляет 15 символов.

Все это предполагает, что IP-адреса должны храниться в удобной для восприятия форме. Я предпочитаю хранить IP-адреса в десятичной форме, поскольку никогда не знаешь, как они будут использоваться. Ваш вариант может отличаться.

решение2

Это не так просто, как можно подумать.

В большинстве случаев вы в безопасности с45.

Обычный адрес IPv6

0000:0000:0000:0000:0000:0000:0000:0000

8 * 4 + 7 =39


IPv6-адрес, сопоставленный с IPv4

Видетьrfc4291

0000:0000:0000:0000:0000:ffff:192.168.100.228

(6 * 4 + 5) + 1 + (4 * 3 + 3) = 29 + 1 + 15 =45


Заголовочные файлыопределить INET6_ADDRSTRLEN как46


IPv6 с областью действия

Видетьrfc4007

Зона области действия может быть числом или даже строкой (именем интерфейса).

ff02::5678%5
ff08::9abc%interface10

Длина имени интерфейса зависит от системы. В Linux она определяется константой IFNAMSIZ. 16 — это обычное значение. С 45 символами выше:

45 + 1 + 16 =62


Также смhttps://stackoverflow.com/questions/166132/максимальная-длина-текстового-представления-адреса-ipv6

Связанный контент