quel est le bon type de champ pour l'adresse IP dans mysql? et quelle est la bonne façon de le stocker en utilisant PHP?
Ce tutoriel pourrait vous aider.
Le moyen le plus efficace de sauvegarder des adresses IPv4 est d'utiliser un champ INT (pas VARCHAR comme vous pouvez vous y attendre). Vous les convertissez en utilisant PHP ip2long
et retour en utilisant soit MySQL INET_NTOA
fonction ou PHP long2ip
fonction.
Si vous devez stocker IPv6, vous voudrez utiliser un champ BINARY à la place et PHP inet_pton
fonction.
vous pouvez les stocker dans un champ binaire d'une longueur de 128 bits (16 octets, BINARY(16)
ou VARBINARY(16)
). pour convertir n'importe quelle adresse IP en sa représentation binaire, vous pouvez utiliser la fonction php inet_pton
. cette méthode fonctionne pour les adresses IPv4 et IPv6. inet_ntop
peut être utilisé pour récupérer la représentation sous forme de chaîne de l'adresse IP stockée (quelle que soit la version)
En règle générale, vous pouvez utiliser VARCHAR (45) car il sera suffisamment long pour même stocker IPv6.