PHP-ip2long无法正确转换

时间:2018-11-08 08:14:51

标签: php

我目前正在尝试学习php,并且在ip2long()函数时遇到了麻烦。

$ipToConvert = '46.21.13.34';
$ip = ip2long($ipToConvert);

echo $ipToConvert;
echo $ip;

预期结果是第一回显显示46.21.13.34,第二回显显示46211334。

我得到的结果是第一个确实显示46.21.13.34,但是第二个回显却显示773131554。

1 个答案:

答案 0 :(得分:2)

ip2long的工作方式不是这样。它将4个字节转换为长值。

例如,a.b.c.d被转换为(a << 24) + (b << 16) + (c << 8) + d

您可能想要的是从字符串中删除点并将结果转换为数字:

intval(str_replace('.', '', $ip));

或者,由于结果可能溢出,因此转换为浮点数

floatval(str_replace('.', '', $ip));