Доброе утро, Гость! Представляем Вам наши форумы. Вы можете зарегистрироваться чтобы писать на форумах или зайдите под своим именем, если Вы уже регистрировались.
   
   


Форум
 SX CMS / Техническая помощь
         запретить доступ к сайту для иностранных IP адресов

Похожие темы

запретить доступ к сайту для иностранных IP адресов


События Четверг, 24.04.2025, 12:06

SX

Группа: Администратор
Cообщений: 3018
Регистрация: 23.10.2009
Ниже вариант с добавлением в систему бана cms. Проверяет только не авторизованных. Проще сделать из этого виджет, код запроса взят из виджета антибот. Изложен принцип, код не тестировал. Тексты естественно в запрос свои пишем


PHP-код


if ($_SESSION['loggedin'] != && SX::object('Counter')->nobann == 0) {

    
$api_url 'http://ipinfo.io/' IP_USER '?token=ВАШ_ТОКЕН';

    
$response false;
    if (
$ch curl_init()) {
        
curl_setopt($chCURLOPT_URL$api_url);
        
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
$response curl_exec($ch);
    }

    
$country_code 'RU'// По умолчанию лучше конечно оставить RU, тогда если ipinfo ответит криво или вообще не ответит, то пользователя все же пустит на сайт 
    
if ($response !== false) {
        
$data json_decode($responsetrue);
        
$country_code $data['country'] ?? $country_code;
    }

    if (
$country_code !== 'RU') {
            
$period 86400;
            
$stime time();
            
$end $stime $period;
            
$row $this->_db->fetch_object("SELECT Id FROM " PREFIX "_banned WHERE Ip = '" IP_USER "' AND Aktiv = '1' LIMIT 1");
            if (
is_object($row)) {
                
$this->_db->query("UPDATE " PREFIX "_banned SET TimeEnd = '" $end "' WHERE Ip = '" IP_USER "' AND Aktiv = '1'  LIMIT 1");
                
SX::setLog('Автоматическое продление системой безопасности нахождения пользователя с адресом ' IP_USER ' в бан-листе''3'$_SESSION['benutzer_id']);
                
Arr::setCookie('welcome'IP_USER$period);
            } else {
                
$insert_array = array(
                    
'Reson'     => 'Система безопасности выявила робота и заблокировала',
                    
'Type'      => 'autobann',
                    
'TimeStart' => $stime,
                    
'TimeEnd'   => $end,
                    
'Ip'        => IP_USER,
                    
'Aktiv'     => '1');
                
$this->_db->insert_query('banned'$insert_array);
                
SX::setLog('Автоматическое добавление системой безопасности пользователя с адресом ' IP_USER ' в бан-лист''3'$_SESSION['benutzer_id']);
                
Arr::setCookie('welcome'IP_USER$period);
            }
    }
}



Благодарности NAME


Пользователь офлайн


Похожие темы  |   Следующая тема

Быстрый переход:  
 

 Сейчас на сайте

Пользователей: 0, Гостей: 6

Поисковые боты: 53
Bot(41), Crawler, BingBot(4), Googlebot, oBot(5), Yandex
 Статистика форума

  Темы Сообщения Пользователи
За сутки:
За неделю:
За месяц:
Всего:
Мы приветствуем нового участника: vasya111
 Дни рождения

Marley (77), Chinare Hesenova (40), palekhoff (33)
Copyright © 2009 - 2024 SX All rights reserved | Powered by SX CMS 1.06 UTF | Контакты