Mysql
 sql >> Base de données >  >> RDS >> Mysql

Est-ce que ip2long() en PHP est égal à la fonction INET_ATON() dans MySQL ?

Ce sont presque exactement les mêmes. ip2long renvoie parfois une valeur négative car PHP utilise des nombres signés pour l'évaluation, tandis que MySQL utilise des nombres non signés.

Les deux sont évalués comme x*(2^24) + y*(2^16) + z*(2^8) + w*(2^0) , mais en PHP, en raison de la longueur de la signature, affichera des valeurs négatives pour certaines adresses IP.

For signed long, the range is 
(2^31) - 1 = −2,147,483,648 to +2,147,483,647

Ainsi, les adresses traduites en plus de +2 147 483 647 se refermeront et donneront des valeurs négatives.

ip2long("254.254.254.254"); // -16843010

Ce lien décrit cela en détail.