A co powiesz na:
BINARY(16)
To powinno być wystarczająco skuteczne.
Obecnie nie ma funkcji konwersji tekstowych adresów IPv6 z/na binarne na serwerze MySQL, jak wspomniano w tym zgłoszeniu błędu. Musisz to zrobić w swojej aplikacji lub ewentualnie utworzyć UDF (funkcja zdefiniowana przez użytkownika) na serwerze MySQL, aby to zrobić.
AKTUALIZACJA:
MySQL 5.6.3 obsługuje adresy IPv6, zobacz:"INET6_ATON(wyr) ".
Typ danych to VARBINARY(16)
zamiast BINARY(16)
jak sugerowałem wcześniej. Jedynym powodem jest to, że funkcje MySQL działają zarówno dla adresów IPv6, jak i IPv4. BINARY(16)
nadaje się do przechowywania tylko adresów IPv6 i oszczędza jeden bajt. VARBINARY(16)
powinno być używane podczas obsługi adresów IPv6 i IPv4.
Implementacja starszych wersji MySQL i MariaDB, zobacz:„ROZSZERZENIE MYSQL 5 O FUNKCJE IPV6 ".