sql >> Databasteknik >  >> RDS >> Mysql

Är ip2long() i PHP lika med INET_ATON()-funktionen i MySQL?

De är nästan exakt likadana. ip2long returnerar ibland ett negativt värde eftersom PHP använder signerade siffror för värdering, medan MySQL använder osignerade.

Båda utvärderas som x*(2^24) + y*(2^16) + z*(2^8) + w*(2^0) , men i PHP, på grund av den långa signeringen, kommer att visa negativa värden för vissa IP-adresser.

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

Så adresser när de översätts till över +2 147 483 647 kommer att omslutas och ge negativa värden.

ip2long("254.254.254.254"); // -16843010

Denna länk beskriver detta i detalj.



  1. Hur kan jag snabba upp MySQL-frågan med flera kopplingar

  2. SQL Server IN vs. FINNS Prestanda

  3. Mysql:Beställa efter like?

  4. Ändra det aktuella antalet för ett Auto Increment-värde i MySQL?