Как настроить блокировку статей на сайте по ГЕО посетителя

Константин Докучаев
Константин Докучаев
Как настроить блокировку статей на сайте по ГЕО посетителя
Capital

Если вы владелец сайта с техническими статьями, наверняка вы знаете, что с 1 марта 2024 года в России запрещено публиковать посты про VPN, который помогает в обходе блокировок. И как быть с такими статьями на вашем ресурсе, решительно непонятно.

Что же делать

Я не юрист и сам не знаю, как правильно, но на некоторых крупных ресурсах я видел, что такие статьи просто недоступны для просмотра из РФ. И реализовать такую блокировку можно очень легко с помощью скрипта ниже.

Демка работы скрипта

Кратко как оно работает

Я ещё и не разработчик, поэтому во всех красках описать код выше не смогу. Но в целом от вас требуется добавить на сайт скрипт jquery. Для этого нужно добавить следующий код в тег <body></body> вашего сайта.

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="script.js"></script>

И добавить вызов следующего скрипта на нужную страницу, где из комментариев и так всё понятно.

// Функция для получения местоположения пользователя по IP с использованием ipapi.co
function getUserLocation(callback) {
    $.get("https://ipapi.co/json/", function(response) {
        callback(response.country_name);
    }, "json");
}

// Функция для скрытия контента для пользователей из России
function hideContentForRussianUsers() {
    const contentDivs = Array.from(document.getElementsByClassName('content'));
    
    getUserLocation(function(country) {
        if (country === 'Russia') {
            contentDivs.forEach(function(contentDiv) {
                contentDiv.innerHTML = '<p>В этом примере местоположение пользователя определяется с помощью ipapi.co и вместо контента показывается это сообщение для пользователей из России</p>';
            });
        }
    });
}

// Вызываем функцию скрытия контента для пользователей из России
hideContentForRussianUsers();
  • С помощью сервиса https://ipapi.co/ определяем IP пользователя.
  • Если пользователь из РФ, то скрываем для него весь контент внутри тега с классом content и отображаем всплывающее сообщение.

Чтобы скрыть текст на вашем сайте, в строчке const contentDivs = Array.from(document.getElementsByClassName('content')); нужно поменять на класс или ID тега, который используется на вашем ресурсе.



Great! Next, complete checkout for full access to All-In-One Person
Welcome back! You've successfully signed in
You've successfully subscribed to All-In-One Person
Success! Your account is fully activated, you now have access to all content
Success! Your billing info has been updated
Your billing was not updated