Estou armazenando ips usando VARBINARY(16)
tipo de dados. Eu gostaria de selecionar apenas os ips ipv4. É possível filtrar a coluna pelo comprimento usado em VARBINARY
(ou VARCHAR
)? Algo assim
SELECT INET6_NTOA(`ip`) from TABLE where BYTESLENGHT(`ip`) = 4
Se
ip_n
for a versão "numérica", entãoserá 16 para IPv6 e algo menor para IPv4.
Se você estava iniciando uma string ("A"), isso será verdadeiro (diferente de zero) para
ip_a
(versão da string) se for IPv6, ou falso (zero) para IPv4:Existe uma função IS_IPV4 como mecanismo também.
Então:
Nota MariaDB-10.5 também tem um tipo de dados INET6 .