输入为32(32位),对应255.255.255.255,
或16至255.255.0.0
如何用php将掩码前缀转换为点分十进制表示法?
我已尝试以下操作,但结果不正确:
$max_ip_str1 = substr(0, $input[1]).str_repeat('1', $input[1]);#$input[1] corresponds to mask
$mask = long2ip(bindec($max_ip_str1));
如有任何帮助,我们将不胜感激)
最佳答案
试试这个:
$mask = long2ip((1<<32)-(1<<(32-$input)));
即 2^32 - 2^X,其中 X 是不应为零的位数。然后将剩下的转换为点形式。
$mask = long2ip(((1<<$input)-1)<<(32-$input));
这以不同的方式执行相同的操作:创建 $input
1,然后将它们移至“顶部位置”。
关于php - 如何将位掩码前缀转换为点分十进制表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24567415/