以下代码在 http://writecodeonline.com/php/ 上运行良好
但不幸的是它无法在我的本地主机上提供当前输出。
$eip = '255.255.255.254';
echo $longeip = ip2long($eip);
输出应该这样显示
4294967294
但它给出 2
对于在此处输入代码
IP 1.0.0.1,我得到当前输出16777217
最佳答案
那是因为ip2long()
将返回 PHP 中带符号的整数值,因此可用的区间为[-1*2^31 .. 2^31-1]
。因此,由于二进制表示形式,它将是 -2
。
如果您想要无符号值,请使用
$longeip = sprintf('%u', ip2long($eip));
这里%u
为sprintf()
指定“无符号整数” 。请注意,在这种情况下,结果将是字符串。
关于PHP ip2long 函数没有给出当前结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22980918/