<MyRusakov.ru />

Программирование на Python с Нуля до Гуру

Программирование на Python с Нуля до Гуру

Данный курс научит Вас программировать на языке Python, который крайне желательно знать любому, кто хоть иногда имеет дело с компьютерами. Курс состоит из 6 разделов, в которых Вы с нуля освоите этот язык и сможете создавать самые разные программы для самых разных задач любой сложности.

К курсу прилагается множество упражнений и все исходники из уроков.

Наконец, Вы получите ещё несколько бонусов: "Создание калькулятора на Python", "Создание игры на Python" и "Правильная работа со справочником".

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Как заблокировать доступ к сайту для посетителей из определенной страны?

Как заблокировать доступ к сайту для посетителей из определенной страны?

При функционировании сайта Вы можете столкнуться с такой задачей, как необходимость блокировки доступа к сайту из определенных стран. Причиной этому может большой трафик из некоторой страны, который забивает канал. При более внимательном рассмотрении данный трафик даже может оказаться попытками взлома сайта или показателем какой-либо иной вреденосной деятельности.

Но вне зависимости от того, что послужило причиной блокировки, на PHP заблокировать доступ к сайту можно следующим способом. Сразу оговорюсь, что данная блокировка в некоторой степени условная, так как посетители могут пользоваться, например, VPN.

Итак, приступим, код достаточно простой, однако если остануться вопросы, обязательно задавайте их в комментариях!

    // этот ключ доступа можно получить, пройдя простую регистрацию на сайте ipstack.com
    // достаточно будет и бесплатного тарифа, ключ доступен сразу после регистрации
    // в личном кабинете
    const API_KEY = '';
    
    // просто случайный IP
    const IP = '12.09.123.4';
    
    function getIpInfo($ip = IP) {
        
        // API, который возвращает информацию в формате JSON
        $endpoint = sprintf('http://api.ipstack.com/%s?access_key=%s&format=1',API_KEY,$ip);
        
        // делаем запрос
        $response = file_get_contents(sprintf($endpoint,$ip));

        return $response;
    }

Теперь у нас есть функция, которая делает запрос на API и возвращает данные для заданного IP. Далее нам из этих данных надо получить название страны.

// получаем название страны из данных, полученных с API
function getCountryName($ip) {
    return json_decode(getIpInfo($ip))->country_name;
}

А далее, остается отфильтровать:

// функция-фильтр заблокированных направлений
function blackList() 
{
    // массив со списком блокируемых стран
    $black_list = ['China','South Korea','Netherlands'];

    // для примера здесь так, но в production коде надо делать, например, так $_SERVER['REMOTE_ADDR']
    $ip = '2.58.194.141';
    $country = getCountryName($ip);

    if( in_array($country,$black_list) ) {
        return "Доступ к сайту из Вашей страны ($country) ограничен!";
    }

    return "Добро пожаловать!";
}

Таким образом, вот так можно ограничить доступ к сайту из определенных стран с помощью PHP. Учтите однако, что данный код должен работать на ранних подступах, т.е. как только пользователь запросил адрес Вашего сайта, одной из первых среди других, должна выполняться эта функция, которая в зависимости от результата будет либо запрещать доступ к сайту, либо пропускать пользователя далее.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.