Те са почти абсолютно еднакви. ip2long понякога връща отрицателна стойност, защото PHP използва подписани числа за оценка, докато MySQL използва неподписани.
И двете се оценяват като x*(2^24) + y*(2^16) + z*(2^8) + w*(2^0)
, но в PHP, поради дългото подписване, ще показва отрицателни стойности за определени IP адреси.
For signed long, the range is
(2^31) - 1 = −2,147,483,648 to +2,147,483,647
Така че адресите, докато се превеждат на над +2 147 483 647, ще се обвият и ще дадат отрицателни стойности.
ip2long("254.254.254.254"); // -16843010
Тази връзка описва това подробно.