Chúng gần như hoàn toàn giống nhau. ip2long đôi khi trả về giá trị âm vì PHP sử dụng số có dấu để định giá, trong khi MySQL sử dụng số không có dấu.
Cả hai đều được đánh giá là x*(2^24) + y*(2^16) + z*(2^8) + w*(2^0)
, nhưng trong PHP, do được ký lâu nên sẽ hiển thị các giá trị âm cho một số địa chỉ IP nhất định.
For signed long, the range is
(2^31) - 1 = −2,147,483,648 to +2,147,483,647
Vì vậy, các địa chỉ trong khi dịch sang hơn +2,147,483,647 sẽ bao quanh và cung cấp các giá trị âm.
ip2long("254.254.254.254"); // -16843010
liên kết này mô tả chi tiết điều này.