Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Armazenando endereços IPv6 no MySQL


Que tal:
BINARY(16)

Isso deve ser eficaz o suficiente.

Atualmente não há nenhuma função para converter endereços IPv6 textuais de/para binários no servidor MySQL, conforme observado nesse relatório de bug. Você precisa fazer isso em sua aplicação ou possivelmente fazer uma UDF (User-Defined Function) no servidor MySQL para fazer isso.

ATUALIZAÇÃO:

O MySQL 5.6.3 tem suporte para endereços IPv6, veja o seguinte:"INET6_ATON(expr) ".

O tipo de dados é VARBINARY(16) em vez de BINARY(16) como sugeri anteriormente. A única razão para isso é que as funções do MySQL funcionam para endereços IPv6 e IPv4. BINARY(16) é bom para armazenar apenas endereços IPv6 e economiza um byte. VARBINARY(16) deve ser usado ao lidar com endereços IPv6 e IPv4.

Uma implementação para versões mais antigas do MySQL e MariaDB, consulte o seguinte:"ESTENDENDO MYSQL 5 COM FUNÇÕES IPV6 ".