Какво ще кажете за:
BINARY(16)
Това трябва да е достатъчно ефективно.
В момента няма функция за преобразуване на текстови IPv6 адреси от/в двоични в MySQL сървъра, както е отбелязано в този доклад за грешка. Трябва или да го направите във вашето приложение, или евентуално да направите UDF (функция, дефинирана от потребителя) в MySQL сървъра, за да направите това.
АКТУАЛИЗИРАНЕ:
MySQL 5.6.3 има поддръжка за IPv6 адреси, вижте следното:"INET6_ATON(expr) ".
Типът данни е VARBINARY(16)
вместо BINARY(16)
както предложих по-рано. Единствената причина за това е, че MySQL функциите работят както за IPv6, така и за IPv4 адреси. BINARY(16)
е добре за съхраняване само на IPv6 адреси и спестява един байт. VARBINARY(16)
трябва да се използва при обработка на IPv6 и IPv4 адреси.
Реализация за по-стари версии на MySQL и MariaDB, вижте следното:"Разширяване на MYSQL 5 С IPV6 ФУНКЦИИ ".