PHP и .htaccess: Как да забраним достъпа на определени IP-адреси
В случай, че не желаете някой IP-адрес да отваря и разглежда вашия сайт може да го направите
с два реда PHP код.
Но преди да дам кода нека да напиша, че забраната може да стане най-лесно с .htaccess
файл.
Такъв файл (в главната директория) имат всички платени хост сървъри.
Може да си направите такъв файл в която искате директория и да ограничите достъпа до нея.
Ако го отворите и разгледате кода му, най-вероятно( но не задължително) ще видите това:

<Files 403.shtml>
order allow,deny
allow from all
</Files>

Което означава, че всеки може да разглежда сайта.
Но ако не желаете определен човек да вижда сайта ви, може да забраните достъпа му
като добавите един ред към .htaccess файла.
За целта трябва да знаете ip-адреса на компютъра му.
Пример - искате да забраните достъпа на ip адрес :
80.231.23.21
То тогава вашия .htaccess файл трябва да изглежда така:

<Files 403.shtml>
order allow,deny
allow from all
</Files>

deny from 80.231.23.21

Ако искате да забраните още един ip адрес :
213.56.47.37
.htaccessфайла трябва да изглежда така:

<Files 403.shtml>
order allow,deny
allow from all
</Files>

deny from 80.231.23.21
deny from 213.56.47.37

Ако все пак някой е решил да види сайта ви непременно, ще открие компютър
от който да го разгледа.
Но със следващия код ще го накарате да ходи до съседното село:

<Files 403.shtml>
order allow,deny
allow from all
</Files>

deny from 80.231.23
deny from 213.56.47

Така ще забраните всички ip-адреси, които започват с 80.231.23 и 213.56.47

Този ред :
<Files 403.shtml>
Означава, че всички блокирани ще ги редиректва към файла 403.shtml , в който
може да напишете "Вие нямате достъп до този сайт" или направо "Разкарай се!"

Е стига за .htaccess.

Ето как може да забраним същите тези ip-адреси с PHP.
Да вземем за пример файла test.php.
Кода му е примерно следния:

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body>
Здравейте.
</body>
</html>

Той, както виждате, съдържа само html код.
Ako искате да забраните на ip-адресите 80.231.23.21 и 213.56.47.37 да го разглеждат.
За целта добавяте два реда PHP код към него:

<?php
$ipaddress = getenv("REMOTE_ADDR");
if ($ipaddress=='80.231.23.21'||$ipaddress=='213.56.47.37')
{exit;}
?>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body>
Здравейте.
</body>
</html>




$ipaddress = getenv("REMOTE_ADDR");
- $ipaddress става равна на ip-то на посетителя
if ($ipaddress=='80.231.23.21'||$ipaddress=='213.56.47.37')
{exit;}
-ако ip-адреса на посетителя
е 80.231.23.21 или 213.56.47.37 спира изпълнението на скрипта.


Ето и още един интересен вариянт.
Ако искате само вие да разглеждате файла test.php и вашия ip адрес е примерно 212.50.14.112
то кода ще изглежда така:

<?php
$ipaddress = getenv("REMOTE_ADDR");
if ($ipaddress!='212.50.14.112')
{exit;}
?>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body>
Здравейте.
</body>
</html>


if ($ipaddress!='212.50.14.112')
{exit;}
-ако ip-адреса на посетителя е различен от 212.50.14.112
спира изпълнението на скрипта.

Това е доста добра защита.


Урока е подготвен специално за http://web-tourist.net




/ Трябва да сте регистриран за да напишете коментар /
От: cakky
16:29 21-01-2011
Много добре, свърши ми идеална работа този урок.
От: cakky
16:35 21-01-2011
Много добре, свърши ми идеална работа този урок.
От: cakky
16:36 21-01-2011
Само дето не ме прехвърля на страницата 403.shtml която аз създадох, а на нормалната страница която излиза при несъществуващ уеб адрес.
1