PROGRAMMING

Blokada dostępu do strony w PHP

#php

Wstęp.

Przy pisaniu różnych skryptów przydaje się nieraz możliwość zablokowania dostępu do danej strony dla jakiegoś IP. Poniżej podaję kod, dzięki któremu można to uzyskać.

Kod php.

<?php

if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
	$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
	$ip = $_SERVER['REMOTE_ADDR'];
}

$ip_file = fopen('ip.dat', 'r');
flock($ip_file, 1);

while(!feof($ip_file))
{
	$ip_one = trim(fgets($ip_file));

	if($ip == $ip_one)
	{
		die("Dostęp dla ip: ".$ip."  zablokowany!");
	}
}

flock($ip_file, 3);
fclose($ip_file);

?>

Wyjaśnienie kodu.

Na początku zaznaczam, że kod napisałem z pamięci i nie sprawdzałem czy działa. Jeżeli coś jest źle to mnie powiadom, a ja to odrazu poprawię ;-] Taki skrypt umieszczamy na początku strony, na której chcemy wprowdzić blokadę. Tworzymy też plik ip.dat, w którym będziemy zapisywać IP, dla których dostęp ma być zakazany. IP zapisujemy jeden pod drugim czyli np.

127.0.0.1
127.0.0.2
127.0.0.3

Gdy gość o IP takim jak jest w pliku wejdzie na stronę to pokaże mu się “Dostęp dla ip: [tutaj jego ip] zablokowany!” i strona przestanie się dalej ładować. Jeżeli gościa IP nie ma w pliku to strona ładuje się normalnie. ;-] Pamiętaj oczywiście o odpowiednich prawach dla pliku ip.dat ;-)