<?php
header('Content-Type: text/html; charset=utf-8'); // Установим кодировку страницы
function getUserGeo() {
if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
$userIP = $_SERVER['HTTP_CLIENT_IP'];
} elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$userIP = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$userIP = $_SERVER['REMOTE_ADDR'];
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, 'http://ip-api.com/json/'.$userIP);
$data = curl_exec($ch);
curl_close($ch);
return json_decode($data, true);
}
$getUserGeo = getUserGeo();
if($getUserGeo['status'] == 'success') { // Если получили данные от сервиса
if($getUserGeo['city'] != 'gorod') {
// Устанавливаем 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();
}
} else { // Если НЕ получили данные от сервиса
/*
Выполняем нужное действие, например, отправляем уведомление на почту.
В нашем случае - просто остановка скрипта.
*/
die();
}
?>
Эту часть вставил в файл конфига
include_once 'lock.php'