Que diriez-vous :
BINARY(16)
Cela devrait être assez efficace.
Actuellement, il n'y a pas de fonction pour convertir les adresses IPv6 textuelles de/vers le binaire dans le serveur MySQL, comme indiqué dans ce rapport de bogue. Vous devez soit le faire dans votre application, soit créer une UDF (fonction définie par l'utilisateur) dans le serveur MySQL pour le faire.
MISE À JOUR :
MySQL 5.6.3 prend en charge les adresses IPv6, voir ce qui suit :"INET6_ATON(expr) ".
Le type de données est VARBINARY(16)
au lieu de BINARY(16)
comme je l'ai suggéré plus tôt. La seule raison à cela est que les fonctions MySQL fonctionnent à la fois pour les adresses IPv6 et IPv4. BINARY(16)
convient pour stocker uniquement les adresses IPv6 et économise un octet. VARBINARY(16)
doit être utilisé lors de la gestion des adresses IPv6 et IPv4.
Une implémentation pour les anciennes versions de MySQL et MariaDB, voir ce qui suit :"EXTENSION DE MYSQL 5 AVEC LES FONCTIONS IPV6 ".