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

标签 php mysql ip

以下代码在 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));

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

关于PHP ip2long 函数没有给出当前结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22980918/

相关文章:

php - Laravel 模型函数内的联合

mysql - 仅针对一列的行进行分组

linux - 无法在 debian beaglebone 上将 IP 更改为静态

python - 在 SQLAlchemy 中创建外键失败

mysql - 如何将mysql数据库导出到另一台电脑?

c - 如何使用 fscanf 扫描 IP 地址

python - 在 Python 中将 IP 地址字符串转换为二进制

php - 如何根据句子结构在输入字段中创建多个自动完成?

php - 在 PHP/MySQL 中表示一组条件调查表

javascript - 通过 ajax 通过一个按钮将单个表单提交给两个操作