繁体   English   中英

如何在php中通过ip2long阻止某些Ip范围

[英]How to block certain Ip ranges via ip2long in php

让我们假设我有以下IP范围,我想阻止89.96.53.158和89.96.53.189

这是我如何尝试实现它。

我的问题:根据下面的代码,它是最好的方法吗? 编码是否适合它

$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()函数实现这一点

是的我用strpos()方法想出了另一种方法

if(strpos($_SERVER['REMOTE_ADDR'], "89.96") === 0)
{
    echo "you cannot access our site";
   exit();
}

如果您注意到, ===运算符确保89.96位于IP地址的开头。 这意味着您可以根据需要指定尽可能多的IP地址,并且无论后面的数字是什么,它都会阻止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM