ip2long('255.255.255.255') should return 4294967295 on 64-bit PHP
| Bug #42512 | ip2long('255.255.255.255') should return 4294967295 on 64-bit PHP | ||||
|---|---|---|---|---|---|
| Submitted: | 2007-09-01 18:10 UTC | Modified: | 2007-09-01 18:38 UTC | ||
| From: | jr-php2 at quo dot to | Assigned: | derick (profile) | ||
| Status: | Closed | Package: | Network related | ||
| PHP Version: | 5.2.4 | OS: | Linux x86-64 | ||
| Private report: | No | CVE-ID: | None | ||
[2007-09-01 18:10 UTC] jr-php2 at quo dot to
Description:
------------
On 64-bit platforms, ip2long() returns a positive result for IP addresses >= 128.0.0.0. This is expected.
However, there is *one* case in which it will return a negative result: when the specified address is 255.255.255.255.
This inconsistency doesn't make sense. Yes, the documentation does say that ip2long() returns -1 for 255.255.255.255, but that should only be the case on 32-bit platforms, where all addresses >= 128.0.0.0 return a negative result.
Reproduce code:
---------------
echo "ip2long('255.255.255.254') = ", ip2long('255.255.255.254'), "\n";
echo "ip2long('255.255.255.255') = ", ip2long('255.255.255.255'), "\n";
Expected result:
----------------
ip2long('255.255.255.254') = 4294967294
ip2long('255.255.255.255') = 4294967295
Actual result:
--------------
ip2long('255.255.255.254') = 4294967294
ip2long('255.255.255.255') = -1
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2007-09-01 18:38 UTC] derick@php.net