ID: 13914
Updated by: derick
Reported By: [EMAIL PROTECTED]
Old Status: Open
Status: Closed
Bug Type: Output Control
Operating System: Windows 2000 SP 2
PHP Version: 4.0.6
New Comment:
This is actually not a bug. PHP only has signed integers (32 bit), that means that an
IP address doesn't fit into that.
echo $ipaddy; will show the number, ie. the signed integer. However, the 'special'
modifier %u does circumvent this problem, but just outputting the number in unsigned
form.
Derick
Previous Comments:
------------------------------------------------------------------------
[2001-11-03 11:27:20] [EMAIL PROTECTED]
There are two examples in PHP MANUAL of ip2long() usage.
The first one is based on echo output and the second - on printf() function. These are
examples with output:
<?
$ip = gethostbyname("www.php.net");
$out = "The following URLs are equivalent:<br>\n";
$out .= "http://www.php.net/, http://".$ip."/, and http://".ip2long($ip)."/<br>\n";
echo $out;
?>
The output of above is:
////////////////////////////////////////////////////////
The following URLs are equivalent:
http://www.php.net/, http://208.210.50.161/, and http://-791530847/
////////////////////////////////////////////////////////
I was confused on $ip output (i supposed ip-numbers are unsigned integers and cannot
contain negative values like -791530847, echoed above). So, i've tryed to run the
second example, wich uses printf() function:
<?php
$ip = gethostbyname("www.php.net");
printf ("%u\n", ip2long ($ip));
echo $out;
?>
The output is:
///////////
3503436449
///////////
I've changed code different ways, 've restarted machine, Apache server, but the
difference remains. So, i've decided it's a bug either of echo or of ip2long()
functions.
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=13914&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]