代码之家  ›  专栏  ›  技术社区  ›  jame

用于inet_ntoa和inet_aton的php equivalant[副本]

  •  3
  • jame  · 技术社区  · 16 年前

    这个问题已经有了答案:

    这两个函数是否有PHP等价物?我试图搜索,但什么也看不见。

    谢谢。

    2 回复  |  直到 13 年前
        1
  •  10
  •   Greg    16 年前

    你想要 ip2long() long2ip() .

    $ip = '192.0.34.166';
    printf("%u\n", ip2long($ip)); // 3221234342
    

    如手册所述:

    注意:因为php的整数类型是 签名,许多IP地址将 结果为负整数,需要 使用sprintf()的“%u”格式化程序 或printf()获取字符串 无符号IP的表示 地址。

        2
  •  1
  •   user2253362    13 年前

    这里是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))); 
    }
    
    推荐文章