Программирование

Как сделать сайт доступным только для определённой страны
22.01.2010

Столкнулся недавно с ситуацией: заказчик попросил сделать так, чтобы сайт открывался только для посетителей из бывшего СССР, а для остального мира выводилась страница "Under construction".

Порывшись в инете, нашёл весьма гуманное решение, подходящее для сайтов с посещаемостью не более 10000 в сутки (лимит GeoIP-сервера wipmania.com, возвращаюшего WIPO-код страны по запросу IP)

В начале php-страницы, до какого-либо вывода текста, пишем следующий код:

<?php
function getIP() {
   if(isset($_SERVER['HTTP_X_REAL_IP'])) return $_SERVER['HTTP_X_REAL_IP'];
   return $_SERVER['REMOTE_ADDR'];
}
$domain = "blahblah.com"; // тут пишем имя нашего сайта, запрос к серверу геопринадлежности обязывает это делать
$ip = getIP();
$fp = file("http://api.wipmania.com/$ip?$domain");
$wipo = trim($fp[0]);
if ($wipo=='RU' || $wipo=='AM' || $wipo=='AZ' || $wipo=='BY' || $wipo=='EE' || $wipo=='GE' || $wipo=='KZ' || $wipo=='KG' || $wipo=='LT' || $wipo=='LV' || $wipo=='MD' || $wipo=='TJ' || $wipo=='TM' || $wipo=='UA' || $wipo=='UZ' || $wipo=='XX') header("Location: index2.php");
?>

Итак, мы видим, что для указанных стран/республик будет открываться страница index2.php.

Код страны ХХ означает невозможность определения. На всякий случай мы его тоже задействовали.

 

Добавить комментарий


Защитный код
Обновить