Как заблокировать сайт по регионам
Добрый день! Я хотел бы знать, как я могу заблокировать свой сайт в некоторых регионах с помощью 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();
}