如何从PHP中的CIDR表示法获取IP地址列表? [重复]

  可能重复:   从PHP获取CIDR表示法中的IP列表 嗨,您好, 我需要从CIDR表示法生成IP地址列表。 例如,用户输入了200.41.132.11/28。作为回报,我需要显示与此CIDR表示法匹配的IP地址列表。 你知道这个PHP函数还是有算法? 谢谢你的帮助。 垫。     
已邀请:
也许我错了,但尝试这样的事情(未经测试):
function getIPfromCIDR($CIDRn) {
  $a = explode("/", $CIDRn);
  $g = explode(".", $a[0]);
  $b = '';  $res = '';
  foreach ($g as $gv) $b .= str_pad(decbin($gv), 8, '0', STR_PAD_LEFT);
  $bm = str_split(str_pad(substr($b, 0, $a[1]), 32, '0', STR_PAD_RIGHT), 8);
  foreach($bm as &$bg) $bg = bindec($bg);
  return join('.', $bm); 
  }

$addr = "200.41.132.11/28";
print_r(getIPFromCIDR($addr));
输出应该是
200.41.132.0
仅获取位掩码(网络掩码)
function bitMask($bits) {
  $res = str_split(str_pad(str_pad('', $bits, '1'), 32, '0', STR_PAD_RIGHT), 8);
  foreach($res as &$bg) $bg = bindec($bg); 
  return join('.', $res); 
  }

echo bitMask(28);
产量
255.255.255.240
注意:它仅适用于IPv4!     

要回复问题请先登录注册