Quantos caracteres um endereço IP pode ter?

Quantos caracteres um endereço IP pode ter?

Tenho que criar um campo em uma tabela mysql para armazenar endereços IP. Preciso saber o máximo de caracteres que um endereço IP pode ter. Seja ipv4, ipv6 ou algum outro tipo que possa renderizar um endereço IP válido de maneira incomumente longa. Então, como devo definir o limite de caracteres?

Estou pedindo comprimento no sentido de que a palavra "foo" tem 3 caracteres, não em termos de bytes ou algo parecido.

Responder1

Um endereço IPv6, no máximo, teria 8 conjuntos de 4 caracteres (32 no total), cada conjunto separado por dois pontos. Isso perfaz 39 caracteres.

Um endereço IPv4 contém no máximo 4 conjuntos de 3 números (12 caracteres), cada conjunto separado por um ponto (.). Isso perfaz 15 caracteres.

Tudo isso pressupõe que os endereços IP devem ser armazenados em formato legível por humanos. Prefiro armazenar endereços IP em formato decimal, pois nunca se sabe como eles serão usados. Sua milhagem pode variar.

Responder2

Isto não é tão fácil como se poderia pensar.

Na maioria dos casos você está seguro com45.

Endereço IPv6 normal

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

8 * 4 + 7 =39


Endereço IPv6 mapeado para IPv4

Verrfc4291

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

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


Arquivos de cabeçalhodefina INET6_ADDRSTRLEN como sendo46


IPv6 com zona de escopo

Verrfc4007

A zona do escopo pode ser um número ou até mesmo uma string (nome da interface).

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

O comprimento do nome da interface depende do sistema. No Linux é definido pela constante IFNAMSIZ. 16 é um valor comum. Com os 45 caracteres acima:

45 + 1 + 16 =62


Veja tambémhttps://stackoverflow.com/questions/166132/maximum-length-of-the-textual-representation-of-an-ipv6-address

informação relacionada