INET_NTOA 和 INET_ATON 的 PHP 等效项 [重复]
Posted
技术标签:
【中文标题】INET_NTOA 和 INET_ATON 的 PHP 等效项 [重复]【英文标题】:PHP Equivalant for INET_NTOA and INET_ATON [duplicate] 【发布时间】:2010-11-25 05:03:24 【问题描述】:这两个函数是否有任何 php 等价物?我尝试搜索,但什么也没看到。
谢谢。
【问题讨论】:
【参考方案1】:这里是 PHP 替代函数(在您的程序中简单复制/粘贴) -
function inet_aton($ip)
$ip = trim($ip);
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) return 0;
return sprintf("%u", ip2long($ip));
function inet_ntoa($num)
$num = trim($num);
if ($num == "0") return "0.0.0.0";
return long2ip(-(4294967295 - ($num - 1)));
【讨论】:
【参考方案2】:你想要ip2long()
和long2ip()
。
$ip = '192.0.34.166';
printf("%u\n", ip2long($ip)); // 3221234342
如手册中所述:
注意:因为 PHP 的整数类型是 签名,并且许多 IP 地址将 导致负整数,你需要 使用 sprintf() 的 "%u" 格式化程序 或 printf() 获取字符串 未签名 IP 的表示 地址。
【讨论】:
以上是关于INET_NTOA 和 INET_ATON 的 PHP 等效项 [重复]的主要内容,如果未能解决你的问题,请参考以下文章