Wat dacht je van:
BINARY(16)
Dat zou effectief genoeg moeten zijn.
Momenteel is er geen functie om tekstuele IPv6-adressen van/naar binair te converteren in de MySQL-server, zoals vermeld in dat bugrapport. Je moet het ofwel in je applicatie doen of eventueel een UDF (User-Defined Function) maken in de MySQL-server om dat te doen.
UPDATE:
MySQL 5.6.3 heeft ondersteuning voor IPv6-adressen, zie het volgende:"INET6_ATON(expr) ".
Het gegevenstype is VARBINARY(16)
in plaats van BINARY(16)
zoals ik eerder suggereerde. De enige reden hiervoor is dat de MySQL-functies werken voor zowel IPv6- als IPv4-adressen. BINARY(16)
is prima voor het opslaan van alleen IPv6-adressen en bespaart één byte. VARBINARY(16)
moet worden gebruikt bij het verwerken van zowel IPv6- als IPv4-adressen.
Een implementatie voor oudere versies van MySQL en MariaDB, zie het volgende:"MISQL 5 UITBREIDEN MET IPV6-FUNCTIES ".