Как заблокировать доступ к сайту СТРАНУ

1. Волан-де-Морт (20.10.2022 / 23:12)
Допустим хочу заблокировать катай, чтобы при заходе на мой сайт видели "Вам закрыт доступ" ???

2. GodZiLLa (21.10.2022 / 08:01)
Через клаудфлейр. Там любые фильтры можно выставить.

3. ВЛАДИМИР (23.10.2022 / 16:37)
$ip = $_SERVER['REMOTE_ADDR']; $query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip.'?lang=ru')); $GPS = ' '.$query['org'].','.$query['regionName'].',   '.$query['country'].', '.$query['city'].' ' ;


4. Евгений (26.10.2022 / 04:52)
<?Php
header('Content-Type: text/html; charset=utf-8'); // Установим кодировку страницы 
echo'	<meta name="viewport" content="width=device-width,initial-scale=1" />';
if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])) { // Если сайт подключен к Cloudflare
	
	$user_ip = $_SERVER['HTTP_CF_CONNECTING_IP'];

} else {

	$user_ip = $_SERVER['REMOTE_ADDR'];
	
}

$user_info = file_get_contents('http://ip-api.com/php/'.$user_ip.'?fields=country,city&lang=ru');

$user_info = unserialize($user_info); // Массив с данными об IP

/*

	Доступные данные:
	$user_info['country'] - страна
	$user_info['city'] - город

*/

if($user_info['country'] == 'Украина') { // Проверяем страну посетителя
	
	// Устанавливаем 503 ответ от сервера (сервис недоступен)
	
	@header('HTTP/1.1 503 Service Temporarily Unavailable');
	@header('Status: 503 Service Temporarily Unavailable');
   
	echo <<<HTML
	
		<!DOCTYPE html>
		<html lang="ru">
			
			<head>
		
				<title>Сайт временно недоступен</title>
				
				<style>
					body {
						padding: 0;
						margin: 0;
						background: #f4f4f4;
					}

					h1 {
						color: #333;
						text-align: center;
						font-size: 22px;
						font-weight: 400;
						padding: 30px 0 0 0;
					}
				</style>
			
			</head>
			
			<body>
			
				<h1>Извините, но для Вашей страны заблокирован доступ к нашему сайту =(</h1>

			</body>
			
		</html>

HTML;

	die();

}
?>


5. Александр (10.11.2022 / 13:14)
<?Phpheader('Content-Type: text/html; charset=utf-8'); // Установим кодировку страницы echo' <meta name="viewport" content="width=device-width,initial-scale=1" />';if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])) { // Если сайт подключен к Cloudflare $user_ip = $_SERVER['HTTP_CF_CONNECTING_IP']; } else {  $user_ip = $_SERVER['REMOTE_ADDR']; } $user_info = file_get_contents('http://ip-api.com/php/'.$user_ip.'?fields=country,city&lang=ru'); $user_info = unserialize($user_info); // Массив с данными об IP /*  Доступные данные: $user_info['country'] - страна $user_info['city'] - город */ if($user_info['country'] == 'Украина') { // Проверяем страну посетителя // Устанавливаем 503 ответ от сервера (сервис недоступен) @header('HTTP/1.1 503 Service Temporarily Unavailable'); @header('Status: 503 Service Temporarily Unavailable'); echo <<<HTML <!DOCTYPE html> <html lang="ru"> <head> <title>Сайт временно недоступен</title> <style> body { padding: 0; margin: 0; background: #f4f4f4; }  h1 { color: #333; text-align: center; font-size: 22px; font-weight: 400; padding: 30px 0 0 0; } </style> </head> <body> <h1>Извините, но для Вашей страны заблокирован доступ к нашему сайту =(</h1>  </body> </html> HTML;  die(); }?>
@James 26.10.2022 / 04:52
HTTP_CF_CONNECTING_IP - подменяется. Это ведь заголовок

6. Вантуз-мен (10.11.2022 / 13:24)
Евгений, если CF то он сам возвращает код страны
https://developers.cloudflare.com/fundamentals/get-started/reference/http-request-headers/
Нет необходимости обращаться к ip-api.com
А так да, нужно проверять от кого пришли заголовки

7. Евгений (11.11.2022 / 00:17)
Вантуз-мен, я с vpn зайти к себе не смог,когда написал Германия smile

URL: https://visavi.net/topics/44733