#8217 [Opn->Csd]: long2ip gives 127.255.255.255 result instead of correct value

From: Date: Sat, 18 Jan 2003 16:27:05 +0000
Subject: #8217 [Opn->Csd]: long2ip gives 127.255.255.255 result instead of correct value
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-30475@lists.php.net to get a copy of this message
ID: 8217 Updated by: moriyoshi@php.net Reported By: christoph@lameter.com -Status: Open +Status: Closed Bug Type: Feature/Change Request Operating System: Linux PHP Version: 4.0.3pl1 New Comment: Thank you for your bug report. This issue has already been fixed in the latest released version of PHP, which you can download at http://www.php.net/downloads.php Previous Comments: ------------------------------------------------------------------------ [2000-12-13 06:35:01] stas@php.net Numbers you brought are not valid PHP longs, they don't fit signed long. So they don't give good result in long2ip. It might be done with a special hack, but it's not a bug - it's a lacking feature. ------------------------------------------------------------------------ [2000-12-12 18:43:49] christoph@lameter.com Feed the following list to this script and you will see how long2ip screws up. There is an overflow condition it seems: 178519801 1061963075 1070665698 1070668067 2180645450 2180645574 2180645666 2180645722 2180647266 2180648705 2180649062 2180652350 2180676205 2301042637 2554268534 2554278550 2554279006 3232238083 3232238334 3435825182 3435825736 3475085569 3506496261 3508072161 3522432302 3528459286 3528470646 3528471070 <?php function lng2ip($ip) { settype($ip,"double"); return floor($ip/(256*256*256)) . "." . floor($ip/(256*256))%256 . "." . floor($ip/256)%256 . "." . } $fh=fopen("xx","r"); while ($x=fgets($fh,100)) { $x=rtrim ($x); echo "$x ".long2ip($x)." ".lng2ip($x)."\n"; } ?> ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=8217&edit=1

« previous php.bugs (#30475) next »