Quel est le bon type de champ pour l'adresse IP dans mysql ? et quelle est la bonne façon de la stocker en utilisant PHP ?
Réponses
Trop de publicités?Ce tutoriel pourrait vous aider.
La manière la plus efficace de sauvegarder les adresses IPv4 est d'utiliser un champ INT (et non VARCHAR comme on pourrait s'y attendre). Vous les convertissez en utilisant la fonction ip2long
et retour en utilisant soit le INET_NTOA
ou la fonction PHP long2ip
fonction.
Si vous avez besoin de stocker l'IPv6, vous voudrez utiliser un champ BINARY à la place et la fonction inet_pton
fonction.
Vous pouvez les stocker dans un champ binaire d'une longueur de 128 bits (16 octets), BINARY(16)
o 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 fonctionnera pour les adresses IPv4 et IPv6. inet_ntop
peut être utilisé pour récupérer la représentation en chaîne de l'adresse IP stockée (indépendamment de la version).