标签: php mysql ip
以下代码在http://writecodeonline.com/php/上正常工作 但不幸的是它无法在我的localhost上提供当前输出。
$ eip =' 255.255.255.254'; echo $ longeip = ip2long($ eip);
输出应该像这样显示 4294967294,但它会2
4294967294
2
对于enter code here IP 1.0.0.1,我获得当前输出16777217
enter code here
16777217
答案 0 :(得分:1)
这是因为ip2long()将在PHP中返回整数值已签名,因此可用的inteval为[-1*2^31 .. 2^31-1]。因此,由于二进制表示,它将是-2。
ip2long()
[-1*2^31 .. 2^31-1]
-2
如果您想要无符号值,请使用
$longeip = sprintf('%u', ip2long($eip));
此处%u为sprintf()指定“无符号整数”。请注意,在这种情况下,结果将是 string 。
%u
sprintf()