PHP等效于INET_NTOA和INET_ATON

时间:2009-09-03 07:43:58

标签: php mysql ip-address

这两个函数有没有PHP等价物?我试着搜索但看不到任何东西。

感谢。

2 个答案:

答案 0 :(得分:10)

您需要ip2long()long2ip()

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

正如手册中所述:

  

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

答案 1 :(得分: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))); 
}