Problems using bitwise &




I'm trying to perform some basic mathematics on IP Addresses. IP's are
normally represented as 32 bit unsigned integers. However I am getting
strange results when using the operators in PHP.

If you run this is a mysql query browser: select (3388826209 &
4294867288) as val; it will tell you the correct answer is:
3388760128. This is the answer I want. My snippet of PHP code is here:

$ip = $networkObjectRow['sipv4addr'];
$subnet = $networkObjectRow['eipv4addr'];

//make php treats these likes numbers and not strings

$ip += (int)0;
$subnet += (int)0;

if ($ip == 0)
return "NOT SET";

$ans = $ip & $subnet; //Bitwise AND.

print("<!-- sip F (ip=$ip,subnet=$subnet) returned is
$ans -->\n");
return ($ans);

However my output is like this:

<!-- sip F (ip=170419457,subnet=4294967040) returned is 170419456 -->
<!-- sip F (ip=170419457,subnet=4294967040) returned is 170419456 -->
<!-- sip F (ip=3388826225,subnet=4294967280) returned is -906141072 --

<!-- sip F (ip=3388826225,subnet=4294967280) returned is -906141072 --

<!-- sip F (ip=170419969,subnet=4294967040) returned is 170419968 -->

<!-- sip F (ip=170419969,subnet=4294967040) returned is 170419968 -->

Where the IP starts 17... the answer is correct. When the value starts
3388 the value is wrong.

I guess this is because PHP is treating the number as a 64 bit one
rather than an unsigned 32 bit one but I'm not really sure. Can anyone
help please?
.



Relevant Pages

  • Re: Problems using bitwise &
    ... On Mar 28, 11:15 am, Philluminati ... normally represented as 32 bit unsigned integers. ... strange results when using the operators in PHP. ...
    (comp.lang.php)
  • RE: [PHP] Mailing List fun
    ... Subject: [PHP] Mailing List fun ... Yeah... ... :) Seems kind of strange that going through the effort of ...
    (php.general)
  • Re: phpinfo() - How does it generates PHP Logo
    ... I wonder how the function phpinfodraws the image of phplogo as an ... Its more strange It shows like this ... The PHP and Zend logos are compiled into the interpreter. ...
    (comp.lang.php)
  • Re: phpinfo() - How does it generates PHP Logo
    ... I wonder how the function phpinfodraws the image of phplogo as an ... Its more strange It shows like this ... The PHP and Zend logos are compiled into the interpreter. ...
    (comp.lang.php)
  • Re: phpinfo() - How does it generates PHP Logo
    ... I wonder how the function phpinfodraws the image of phplogo as an ... Its more strange It shows like this ... The PHP and Zend logos are compiled into the interpreter. ...
    (comp.lang.php)