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.