¿Cuántos caracteres necesito para almacenar cualquier dirección IPv4 numérica?

Por favor, por favor, no solo le dé a su base de datos la capacidad de almacenar direcciones IPv4. Eventualmente necesitará soportar IPv6, por lo que el mejor momento para comenzar es ahora.

Mysql 5.6 y superior, en particular, lo hace fácil; simplemente puede usar un tipo VARBINARIO (16) para almacenar las direcciones IPv4 e IPv6 en el mismo campo, y luego usar inet6_ntoa () e inet6_aton () para convertir valores binarios a valores legibles para humanos al almacenar y recuperar datos. VARBINARY no desperdicia los 96 bits adicionales en las direcciones IPv4, e inet6_aton / ntoa () codificará / decodificará las direcciones v4 y v6.

Si necesita almacenar una máscara de subred junto a la dirección, puede usar INT, o puede ser súper eficiente y usar un TINYINT sin signo ya que está almacenando un valor máximo de 128 (no olvide hacerlo sin signo; TINYINT firmado alcanza un máximo de 127).

15 caracteres si desea almacenar las direcciones en un formato legible para humanos.
o 4 caracteres o 1 entero de 32 bits si puede almacenar cada parte de la dirección IP como un byte.

Si desea almacenar las direcciones en un formato legible para humanos como 127.0.0.1 , necesita 3 caracteres para cada parte (255 es el máximo) y 3 caracteres para los puntos = 4 * 3 + 3 = 15

Si no le importa la legibilidad, puede almacenar la dirección IP como un entero de 32 bits para ahorrar espacio.

Si bien la pregunta especifica IPv4, es posible que también desee considerar el hecho de que IPv6 está ganando popularidad y requiere más espacio. Por lo tanto, es posible que desee pensar detenidamente si necesitará compatibilidad con IPv6, porque la actualización de una aplicación para admitir IPv6 es dolorosa y tediosa.