Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ist ip2long() in PHP gleich der Funktion INET_ATON() in MySQL?

Sie sind fast genau gleich. ip2long gibt manchmal einen negativen Wert zurück, da PHP vorzeichenbehaftete Zahlen zur Bewertung verwendet, während MySQL unsigned.

verwendet

Beide werden als x*(2^24) + y*(2^16) + z*(2^8) + w*(2^0) ausgewertet , aber in PHP werden aufgrund der langen Signatur negative Werte für bestimmte IP-Adressen angezeigt.

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

Adressen, die in über +2.147.483.647 übersetzt werden, werden also umgebrochen und geben negative Werte aus.

ip2long("254.254.254.254"); // -16843010

Dieser Link beschreibt dies ausführlich.