Как заблокировать сайт по регионам

Добрый день! Я хотел бы знать, как я могу заблокировать свой сайт в некоторых регионах с помощью PHP. Я не хочу, чтобы мой сайт работал во всех регионах. Может ли кто-нибудь мне помочь?

2 ответа

Решение

Лучший способ сделать это - использовать брандмауэр. Другой способ - использовать Apache. Простой способ сделать это - использовать эту ссылку.

С помощью этого инструмента вы можете выбрать страны, которые вы не собираетесь обслуживать, что дает вам настройки по умолчанию.

Конечно, я надеюсь, что вы не намерены блокировать свои услуги для иранцев:)

Если вы все же хотите попробовать заблокировать город, взгляните на mod_security + GeoIP (при условии, что вы используете Apache).

Обновлено:

Вы можете использовать IptoLocation Script ( http://www.ip2location.com/), а затем вы можете проверить город или регион после этого Блокировка города или региона с веб-сайта. Вы можете запросить информацию о блоке на http://location2ipaddress.com/ например. Если вы хотите использовать для этого файл.htaccess, то все, что вам нужно, это данные диапазона ip - поместите это в список запрета, и все готово.

Кроме того, вы можете использовать любой API GeoIP для запроса местоположения посетителя. Просто Google GeoIP API, чтобы увидеть, что доступно. Есть онлайн-решения и загружаемые базы данных.

Попробуйте получить ip участника соединения с помощью $_SERVER['REMOTE_ADDR'] и проверьте, находится ли страна IP в вашем черном списке. Вот фрагмент кода, который может помочь вам

$cip = $_SERVER['REMOTE_ADDR'];
$iptolocation = 'http://api.hostip.info/country.php?ip=' . $cip;
$creatorcountry = file_get_contents($iptolocation);

$creatorcountry будет содержать страну участника соединения, которую вы можете просмотреть в списке заблокированных стран, а затем вернуть false в качестве ответа.

if (in_array(strtolower($creatorcountry), $blockedCountryList)) {
    echo "Your country is blocked."
    exit();
}
Другие вопросы по тегам