Stockage de l'adresse IP dans la base de données MySQL en utilisant PHP [dupliquer]
cette question a déjà une réponse ici:
- Quel est le type de données le plus approprié pour stocker une adresse IP dans SQL server? [duplicate] 15 réponses
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?
3 réponses
ce tutoriel pourrait vous aider.
la manière la plus efficace de sauvegarder les adresses IPv4 est d'utiliser un champ INT (et non pas VARCHAR comme vous pourriez vous y attendre). Vous les convertissez en utilisant ip2long
de PHP et vice versa en utilisant la fonction INET_NTOA
de MySQL ou la fonction de PHP.
si vous avez besoin de stocker IPv6, vous voudrez utiliser un champ binaire au lieu de cela 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 à sa représentation binaire, vous pouvez utiliser la fonction php inet_pton
. cette méthode fonctionnera pour les adresses IPv4 et IPv6. inet_ntop
peut être utilisé pour récupérer la représentation de chaîne de caractères de l'adresse IP stockée (quelle que soit la version)
généralement vous pouvez aller avec VARCHAR (45) car il sera assez long pour même stocker IPv6.