以下代码在http://writecodeonline.com/php/上运行良好
但不幸的是,它无法在我的本地主机上提供当前输出。
$eip = '255.255.255.254';
回声$longeip = ip2long($eip);
输出应该像这个4294967294一样显示,但是它给出了2
对于enter code hereIP 1.0.0.1,我得到当前输出的16777217
发布于 2014-04-10 07:07:40
这是因为ip2long()将返回整数值,它是签名的,所以可用的整数是[-1*2^31 .. 2^31-1]。因此,由于二进制表示,它将是-2。
如果要使用无符号值,请使用
$longeip = sprintf('%u', ip2long($eip));这里,%u为sprintf()指定“无符号整数”。请注意,在这种情况下,结果将是字符串。
https://stackoverflow.com/questions/22980918
复制相似问题