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.1127.0.0.2127.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
;-)