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?

55
demandé sur Stephen R 2011-06-21 19:22:44

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.

60
répondu Francois Deschenes 2016-03-17 21:10:35

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)

50
répondu knittl 2011-06-21 15:48:12

généralement vous pouvez aller avec VARCHAR (45) car il sera assez long pour même stocker IPv6.

15
répondu Sander 2011-06-21 15:26:24