PHP中与INET_NTOA和INET_ATON等价的函数是什么?

3

有没有这两个函数的PHP等价函数?我尝试搜索但没有找到任何信息。

谢谢。

2个回答

10

您需要使用ip2long()long2ip()函数。

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

正如手册所述:

注意:由于PHP的整数类型是有符号的,而许多IP地址将导致负整数,因此您需要使用sprintf()或printf()的"%u"格式化程序来获取无符号IP地址的字符串表示。


2

以下是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))); 
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接