Бинарная форма адресов IPv4 равна 32, а максимальная длина — 15 в нашей часто используемой точечной десятичной форме, например, «255.255.255.255».
Таким образом, максимальная длина формы IPv4-адресной строки, определённой в <netinet/in.h> posix, составляет 16 байт, а терминатор '\0' также должен занимать 1 байт:
#define INET_ADDRSTRLEN 16 Двоичная форма IPv6-адресов имеет длину 128 байт и выражается в шестнадцатеричной форме, например, «ffff:ffff:ffff:ffff». Сначала я думал, что максимальная длина строки IPv6 — 128/4+7+1=40 байт
Однако, если рассматривать форму IPv6-адресной строки, определённую в <netinet/in.h> POSIX, максимальная длина составляет 46 байт
#define INET6_ADDRSTRLEN 46 IPv6-адрес, изначально отображаемый IPv4, может иметь такой формат «ffff:ff:ff:ffff:255:255:255:255:255», что составляет 45 байт, плюс символ закрывания — 46 байт
|