sql >> Database >  >> RDS >> Mysql

Is ip2long() in PHP gelijk aan INET_ATON() functie in MySQL?

Ze zijn bijna precies hetzelfde. ip2long geeft soms een negatieve waarde terug omdat PHP getekende getallen gebruikt voor waardering, terwijl MySQL unsigned gebruikt.

Beide worden geëvalueerd als x*(2^24) + y*(2^16) + z*(2^8) + w*(2^0) , maar zal in PHP, vanwege de lange ondertekening, negatieve waarden weergeven voor bepaalde IP-adressen.

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

Dus, adressen die vertaald zijn naar meer dan +2.147.483.647 zullen rondlopen en negatieve waarden geven.

ip2long("254.254.254.254"); // -16843010

Deze link beschrijft dit in detail.



  1. Geen SPU meer

  2. De beste manier om te controleren of mysql_query resultaten heeft opgeleverd?

  3. MySQL ACOS() Functie – Retourneer de boogcosinus van een getal

  4. Hoe kan ik de uitvoer van een query opslaan in een tijdelijke tabel en de tabel in een nieuwe query gebruiken?