Запретить один или несколько IP-адресов с помощью PHP без доступа с помощью .htaccess

Я ищу хороший код в PHP для запрета некоторых спамеров IP-адреса Мой сервер выдает ошибку 500, если я использую .htaccess

1

Решение

Это сделает работу

$getip = $_SERVER["REMOTE_ADDR"];
$banned_ip = array();

$banned_ip[] = '194.9.94.*';
$banned_ip[] = '77.105.2.*';

foreach($banned_ip as $banned)
{
$blacked=str_replace('*', '', $banned);
$len=strlen($blacked);
if ($getip==$blacked || substr($getip, 0, $len)==$blacked)
{
$_banned_ip=true;
}
}

if($_banned_ip==true){
echo 'THIS IP IS BANNED!';
exit;
}
1

Другие решения

Самый простой способ — создать базу данных, в которой хранится список запрещенных IP-адресов, если вы хотите сделать это на стороне PHP, а не прямо на сервере.

for($i = 0;$i < count($listOfIps);$i++) {
if($listOfIps[$i] == filteredIP($_SERVER['REMOTED_ADDR'])) { //filteredIP is not a native function, it's just a representation of however you want to filter the ip addresses which are sent to you
$banned = true;
}
}

if($banned):
//redirect user or kill script
else:
//render page

endif;

Тем не менее, могут быть лучшие решения, основанные на специфике страницы или приложения, но это лучшее решение, которое я могу придумать, основываясь на вашем вопросе.

0

По вопросам рекламы [email protected]