sql >> Databáze >  >> RDS >> Mysql

Je ip2long() v PHP roven funkci INET_ATON() v MySQL?

Jsou téměř úplně stejné. ip2long někdy vrací zápornou hodnotu, protože PHP používá pro oceňování čísla se znaménkem, zatímco MySQL používá unsigned.

Oba jsou vyhodnoceny jako x*(2^24) + y*(2^16) + z*(2^8) + w*(2^0) , ale v PHP, kvůli dlouhému podpisu, bude u určitých IP adres zobrazovat záporné hodnoty.

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

Adresy při převodu na více než +2 147 483 647 se tedy zabalí a poskytnou záporné hodnoty.

ip2long("254.254.254.254"); // -16843010

Tento odkaz to podrobně popisuje.



  1. Migrace sítě s nulovými výpadky s MySQL Galera Cluster pomocí Relay Node

  2. Oracle – Proč bych měl používat balíčky místo samostatných procedur nebo funkcí

  3. Jak získat celkový počet nalezených řádků bez zohlednění limitu v PDO?

  4. Tabulka odstraňování problémů Nenalezeny chyby