web-dev-qa-db-fra.com

Stockage d'adresse IP dans la base de données MySQL en utilisant PHP

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?

56
user552828

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.

61
Francois Deschenes

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)

50
knittl

En règle générale, vous pouvez utiliser VARCHAR (45) car il sera suffisamment long pour même stocker IPv6.

17
Sander