输入为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));
任何帮助将不胜感激)
答案 0 :(得分:2)
试试这个:
$mask = long2ip((1<<32)-(1<<(32-$input)));
即2 ^ 32 - 2 ^ X,其中X是不应为零的位数。然后将剩下的内容转换为虚线形式。
$mask = long2ip(((1<<$input)-1)<<(32-$input));
这样做的方式不同:创建$input
1,然后将它们转移到“顶部位置”。
答案 1 :(得分:0)
如果你的价值是这样修复的。
32 = 255.255.255.255
16 = 255.255.255.255
尝试只使用if语句
if($input == "32")
{
$mask = "255.255.255.255";
}