Vad sägs om:
BINARY(16)
Det borde vara tillräckligt effektivt.
För närvarande finns det ingen funktion för att konvertera textuella IPv6-adresser från/till binära i MySQL-servern, som noterats i den felrapporten. Du måste antingen göra det i din applikation eller möjligen göra en UDF (User-Defined Function) i MySQL-servern för att göra det.
UPPDATERING:
MySQL 5.6.3 har stöd för IPv6-adresser, se följande:"INET6_ATON(expr) ".
Datatypen är VARBINARY(16)
istället för BINARY(16)
som jag föreslog tidigare. Den enda anledningen till detta är att MySQL-funktionerna fungerar för både IPv6- och IPv4-adresser. BINARY(16)
är bra för att endast lagra IPv6-adresser och sparar en byte. VARBINARY(16)
bör användas vid hantering av både IPv6- och IPv4-adresser.
En implementering för äldre versioner av MySQL och MariaDB, se följande:"UTLÄGA MYSQL 5 MED IPV6-FUNKTIONER ".