PHP ip2long函数没有给出当前结果

时间:2014-04-10 07:04:28

标签: php mysql ip

以下代码在http://writecodeonline.com/php/上正常工作 但不幸的是它无法在我的localhost上提供当前输出。

$ eip =' 255.255.255.254';
echo $ longeip = ip2long($ eip);

输出应该像这样显示 4294967294,但它会2

对于enter code here IP 1.0.0.1,我获得当前输出16777217

1 个答案:

答案 0 :(得分:1)

这是因为ip2long()将在PHP中返回整数已签名,因此可用的inteval为[-1*2^31 .. 2^31-1]。因此,由于二进制表示,它将是-2

如果您想要无符号值,请使用

$longeip = sprintf('%u', ip2long($eip));

此处%usprintf()指定“无符号整数”。请注意,在这种情况下,结果将是 string