• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь регистрация только для заданных IP адресов

Статус
В этой теме нельзя размещать новые ответы.

newkos

Создатель
Регистрация
22 Сен 2006
Сообщения
35
Реакции
60
Добрый день!

Помогите решить проблему или найти готовое решение.

DLE 7.5 нулед.

Нужно сделать проверку при регистрации на определённые (или диапазон) IP, которые перед этим заданы или в базе или в txt файле и если этих айпи нет там то отклонить регистрацию показав сообщение или страницу.

Как это реализовать ?

Наперёд спасибо за помощь.
 
Доступ к регистрационной страничке с привелегиями ысталенными через .htaccess
PHP:
<FilesMatch "\.(register)$">
Order allow,deny
Deny from all
allow from 172.16.200.2 127.0.0.1 123.123.123
</FilesMatch>

Подсказку дал, а дальше сам разберешься.
 
Спасибо за наводку, но не работает почему-то, выдаёт ошибку сервера "Internal server error"...
 
всё вполне тривиально

создаём php файл, называем его filter.php, кладём в корень своего сайта.
внутрь пихаем этот код, добавляем ip по вкусу ^_^

PHP:
<?php

// ваши бан-маски. синтаксис приведен ниже  // 
// XXX - все адреса диапазона текущего октета */ 
$banmask[] = "87.XXX.XXX.XXX"; 
$banmask[] = "166.66.XXX.XXX"; 
$banmask[] = "157.150.123.XXX"; 
$banmask[] = "137.112.10.17"; 
$banmask[] = "192.168.148.90"; 

function check_deny($mask) 
{ 
 $idx = preg_match("#(.*)\.(.*)\.(.*)\.(.*)#", $mask, $ban_args); 
 $idx = preg_match("#(.*)\.(.*)\.(.*)\.(.*)#", $_SERVER["REMOTE_ADDR"], $ip_args); 
 for($x=1;$x<=4;$x++) 
 { 
 if (($ban_args[$x] == $ip_args[$x]) || $ban_args[$x] == "XXX") 
 return "banned"; 
 return "clear"; 
 } 
} 
foreach ($banmask as $key) 
{ 
 if (check_deny($key)=="banned") 
 { 
 header("HTTP/1.0 403 Forbidden"); die("<html><h1>403 - Forbidden</h1>You dont have access to this server</html>"); 
 } 
} 

?>

открываем /engine/modules/register.php

ищем
PHP:
require_once ENGINE_DIR . '/classes/parse.class.php';

чуть выше или ниже добавляем
PHP:
require_once ROOT_DIR . '/filter.php';

PROFIT!
 


Вот, я уже выкладывал функцию проверки ип. Она безопаснее выше-приведенной будет.
 
всё вполне тривиально

создаём php файл, называем его filter.php, кладём в корень своего сайта.
внутрь пихаем этот код, добавляем ip по вкусу ^_^

Вроде всё понял кроме... в banmask надо вписать айпи те которые я разрешаю для регистрации или те которые я запрещаю для регистрации ?

если второе то это получается полинтернета айпи надо вписать, а если первое тогда мне это подходит действительно...

ответте пожалуйста, и если это всё таки второй вариант, то можно ли переписать код немного для первгого варианта ?

спасибо заранее

Добавлено через 1 минуту
*** скрытое содержание ***

Вот, я уже выкладывал функцию проверки ип. Она безопаснее выше-приведенной будет.
А если использовать вашу функцию то пожалуйста роскажите куда её вписывать, потому что в програмировании не очень, по пунктам смог бы сделать.

спасибо
 
Пишешь в начале /engine/modules/register.php

PHP:
if (false !== checkIp($_SERVER['REMOTE_ADDR'], $config['allowip'])) { 
    exit('Access Denied'); 
}

вот так, будет всем отказано, у кого ИП НЕ соотвествует маскам.

PHP:
if (false === checkIp($_SERVER['REMOTE_ADDR'], $config['allowip'])) { 
    exit('Access Denied'); 
}

вот так, будет всем отказано, у кого ИП соотвествует маскам.
 
Спасибо, скрипт помог, только в вашем последнем посте наоборот надо, внизу будет НЕ отказано тем хто в списке айпи, а вверху отказано.

спасибо всем ответившим, тему можна закрывать
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху