2011-11-16 14 views
9

Duplicar posible:
What type should I store IP addresses for MySQL?¿Cuál es el tipo de datos ideal para almacenar la dirección IP en una tabla mysql?

Un tipo de datos única que puede acomodar tanto las direcciones IPv4 e IPv6. Quiero almacenar direcciones IP para limitar el número de perfiles que una persona puede hacer desde su máquina en mi sitio web.

+2

recomendaría un entero y luego lo analizaría –

+0

¿Solo IPv4 o IPv6 también? ¿Solo una IP o también su máscara de subred? – Martijn

+0

algunos temas similares en SO recomendamos varchar ... wat abt that? –

Respuesta

6

Las direcciones IPv4 usan 32 bits (4 bytes), las direcciones IPv6 usan 128 bits (16 bytes). Por lo tanto, puede almacenar su representación binaria en los campos BINARY(16) o VARBINARY(16).

Consulte también mi respuesta a la pregunta IP address storing in mysql database. También proporciona comentarios sobre por qué elegiría uno sobre el otro.

+0

el almacenamiento y la recuperación funciona bien ... pero no estoy seguro de si funcionará bien para el propósito previsto que mencioné en la pregunta –

0

Un tipo de datos trie sería óptimo. Hay estructuras de datos comprimidas y sin comprimir de ese tipo.

3

Puede usar un INT NO FIRMADO y usar INET_ATON y INET_NTOA para codificarlo y descodificarlo.

+1

¿funcionará esto tanto v4 como v6? –

Cuestiones relacionadas