57 votes

Stockage des adresses IP dans une 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 la stocker en utilisant PHP ?

61voto

Francois Deschenes Points 15809

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.

51voto

knittl Points 64110

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).

17voto

Sander Points 700

En général, vous pouvez opter pour VARCHAR(45), car il sera suffisamment long pour stocker l'IPv6.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X