Как заблокировать диапазон ip-адресов с помощью php?
у Меня есть функция в php, но не хотел бы, чтобы она была выполнена людей одной страны, как сделать так, чтобы php-скрипт блокирует один диапазон ip-адресов?
, Например, заблокировать диапазон ip-адресов из США.
необходимо, можно добавить диапазон ip-адресов.
4
1 answers
Можно сделать несколькими способами:
Предполагая, что нужно заблокировать диапазон: 90.25..
1) с Помощью strpos:
if(strpos($_SERVER['REMOTE_ADDR'], "90.25") === 0)){ // se ip começa com 90.25
echo 'bloqueado';
exit;
}
2) с Помощью ip2long маска в стандартной: 255.255.0.0
$rede = ip2long("90.25.0.0");
$mascara = ip2long("255.255.0.0");
$ip = ip2long($_SERVER['REMOTE_ADDR']);
if (($mascara & $mascara) == ($ip & $mascara)) {
echo 'bloqueado';
exit;
}
3) с Помощью ip2long маска в стандартной: 255.255.0.0/16
$rede = ip2long("90.25.0.0");
$prefixo = 16;
$ip = ip2long($_SERVER['REMOTE_ADDR']);
if ($rede >> (32 - $prefixo )) == ($ip >> (32 - $prefixo )) {
echo 'bloqueado';
exit;
}
, Чтобы заблокировать несколько треков, создайте array
треков, которые будут заблокированы, и совершите loop
повторять блокада.
Примечание: на Основе ответов на вопрос iTayb
4
Author: Allan Andrade, 2017-05-23 12:37:31