sql >> Base de Datos >  >> RDS >> Mysql

¿Es ip2long() en PHP igual a la función INET_ATON() en MySQL?

Son casi exactamente iguales. ip2long a veces devuelve un valor negativo porque PHP usa números con signo para la valoración, mientras que MySQL usa sin firmar.

Ambos se evalúan como x*(2^24) + y*(2^16) + z*(2^8) + w*(2^0) , pero en PHP, debido al tiempo de firma, mostrará valores negativos para ciertas direcciones IP.

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

Por lo tanto, las direcciones mientras se traducen a más de +2,147,483,647 se ajustarán y darán valores negativos.

ip2long("254.254.254.254"); // -16843010

Este enlace describe esto en detalle.