如何通过php中的ip2long阻止某些IP范围

假设我具有要阻止89.96.53.158和89.96.53.189的以下IP范围


这是如何尝试实现它。


我的问题是:按照下面的代码,这是最好的方法吗?下面的代码是否适合它


$ip = sprintf('%u', ip2long($_SERVER['REMOTE_ADDR']));

$start_ip = sprintf('%u', ip2long("89.96.53.158"));

$end_ip =   sprintf('%u', ip2long("89.96.53.189"));


// stop only ip range between 89.96.53.158 - 89.96.53.189



if ($ip >= $start_ip && $ip <=  $end_ip) {

   echo "you cannot access our site";

   exit();

}

我也可以使用strpos()功能来实现吗


杨__羊羊
浏览 127回答 1
1回答

慕仙森

是的,我想出了另一种使用strpos()方法的方法if(strpos($_SERVER['REMOTE_ADDR'], "89.96") === 0){&nbsp; &nbsp; echo "you cannot access our site";&nbsp; &nbsp;exit();}如果您注意到,===操作员将确保89.96位于IP地址的开头。这意味着您可以指定任意数量的IP地址,并且无论后面输入什么数字,该地址都会被阻止。
打开App,查看更多内容
随时随地看视频慕课网APP