viernes, 4 de marzo de 2011

Mysql mejor tipo de campo para guardar ip

Cuando necesitamos guardar direcciones IP en nuestras bases de datos, lo más cómodo (y que casi hacemos por inercia) es asignar al campo un tipo VARCHAR con una longitud de 15 caracteres. Sin embargo, existe una opción mejor que poco a poco voy encontrándome en los principales CMS y Frameworks: INT UNSIGNED.
Así, utilizando el comando de MySQL INET_ATON, la dirección IP quedaría codificada en una cadena de 4 bytes que podríamos recuperar mediante su contrario INET_NTOA. Veamoslo con ejemplos:


# Tomamos una direccion IP y la convertimos en una cadena de enteros:     SELECT INET_ATON('192.168.0.10') AS ipn;
# Esto se traduciría en 3232235530 
# El proceso inverso:
     SELECT INET_NTOA(3232235530) AS ipa;
# Nos devuelve nuestra direccion IP anterior: 192.168.0.10

2 comentarios: