Як заблокувати доступ до сайту по певній країні або місту на php

Буває, що з якоїсь причини вам потрібно обмежити доступ до вашого сайту того чи іншого міста, країни. Наприклад, ваш сайт має, здебільшого, контент російською мовою, і раптом ви помічаєте підозрілий трафік з Китаю, який сильно гальмує роботу вашого сайту.

Щоб заблокувати доступ до сайту для певної країни або міста, перше, що вам необхідно зробити - це отримати IP користувача, після чого отримати необхідну інформацію по ньому, зробити перевірку і в разі збігу - заблокувати доступ.

А тепер перейдемо від слів до практики.

Думаю, що не варто нагадувати, що на вашому сайті повинна бути підтримка PHP.

2. На основі отриманого IP необхідно визначити, звідки наш відвідувач. Для цього ми скористаємося сервісом «freegeoip.net», який безкоштовно, на основі IP, надасть нам деяку інформацію про користувача.

Тут $ user_country і $ user_city містять в собі назву країни та міста відповідно, які вказані на англійській мові.

На момент написання статті сервіс «freegeoip» був в робочому стані. Якщо раптом він перестав працювати, скористайтеся наступними сервісами для отримання інформації про користувача:

Зверніть увагу. що при використанні цих сервісів необхідно внести коректування в код.

3. Тепер зробимо перевірку країни і заблокуємо доступ, якщо країна збіглася з вказаною вами. На прімереУкаіни підсумковий скрипт буде виглядати так:

ви можете вказати будь-які HTML-теги, CSS-стилі або скрипти і таким чином налаштувати потрібний вам оформлення для сторінки блокування.

Візуально підсумок роботи нашого скрипта буде такою:

Сам код потрібно вставляти в самий верх теми вашого сайту, або ж підключати його через: