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 等效项 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

inet_ntoa的基本介绍

mysql 存取ip方法

mysql数据库ip与字符串

c++中一个long类型数据转换成IP地址

Mysql中的函数

IP地址转换函数