Dupliquer possible:
Longueur maximale de la représentation textuelle d'une adresse IPv6?Que recommanderiez-vous comme taille maximale pour une colonne de base de données stockant des adresses IP client? Je l'ai réglé à 16 en ce moment, mais pourrais-je obtenir une adresse IP qui est plus longue que celle avec IPv6, etc?
Réponses
Trop de publicités?Il y a une mise en garde. Pour IPv4 mappée adresses IPv6, la chaîne peut être plus de 39 caractères. Laissez-moi vous montrer avec un exemple:
IPv6 (39 octets) :
ABCD:ABCD:ABCD:ABCD:ABCD:ABCD:ABCD:ABCD
IPv4-IPv6 mappées (45 octets) :
ABCD:ABCD:ABCD:ABCD:ABCD:ABCD:192.168.158.190
La dernière 32 bits (qui correspondent à des adresses IPv4) peuvent avoir besoin de plus de 10 caractères.
Le bon maximum IPv6 longueur de la chaîne, par conséquent, est de 45.
C'était réellement une question quiz dans une formation IPv6 j'ai assisté. (Nous avons tous répondu à 39!)
Pour IPv4, vous pourriez sortir avec le stockage de l'4 premières octets de l'adresse IP (chacun des nombres entre les périodes en une adresse IP sont de 0 à 255, soit un octet). Mais alors que vous auriez à traduire et de la DB, et que c'est le désordre.
Les adresses IPv6 sont de 128 bits (par opposition à 32 bits d'adresses IPv4). Ils sont en général écrits en 8 groupes de 4 chiffres hexadécimaux séparés par des virgules: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
. 39 caractères est approprié pour stocker des adresses IPv6 dans ce format.
Edit: Cependant, il est une mise en garde, voir @Deepak la réponse pour plus de détails sur IPv4 mappée adresses IPv6. (Le bon maximum IPv6 longueur de la chaîne est de 45 caractères.)
Si vous voulez gérer IPV6 en notation standard, il y a 8 groupes de 4 chiffres hexadécimaux:
2001:0dc5:72a3:0000:0000:802e:3370:73E4
32 chiffres hexadécimaux + 7 séparateurs = 39 caractères.
ATTENTION: Si vous souhaitez également gérer des adresses IPV4 mappées en tant qu'adresses IPV6, utilisez 45 caractères comme suggéré par @Deepak .
Comme décrit dans le protocole IPv6 Wikipédia, article,
Les adresses IPv6 sont normalement écrit en huit groupes de quatre hexadécimal chiffres, où chaque groupe est séparé par un deux-points (:)
Typique de l'adresse IPv6:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
C'est de 39 caractères. Les adresses IPv6 sont de 128 bits, de sorte que vous pourrait éventuellement utiliser un binaire(16) de la colonne, mais je pense que je collerais avec une représentation alphanumérique.