[PHP] Jak zablokować dostęp do strony lub całego serwisu osobom łączącym się z wybranych numerów IP?
Chcesz uniemożliwić wejście na stronę osobom łączącym się z wybranych numerów (lub fragmentów numerów) IP.
Nie każdy użytkownik wie do czego służy Internet lub nie każdy przestrzega netykiety lub też celowo łamie pewne zasady, których nie powinien naruszyć. Nie znaczy to, że może to robić bezkarnie. Oprócz powinformowania administratora jego sieci można zablokować mu dostęp do serwisu, jeżeli znasz IP, z którego się łączy (a zwykle łatwo numer IP namierzyć).
Zobacz jak w prosty sposób zablokować dostęp do serwisu z wybranych numerów IP. Na samej górze strony sprawdź, czy osoba łączy się z podanego numeru IP, stosując np. poniższy zapis:
<?
if (ereg("213.32.22.6",$_SERVER["REMOTE_ADDR"])) {exit;}
if (ereg("213.32.22.7",$_SERVER["REMOTE_ADDR"])) {exit;}
if (ereg("^211.32.",$_SERVER["REMOTE_ADDR"])) {exit;}
?>
Zmienna $_SERVER["REMOTE_ADDR"] przechowuje numer IP osoby łączącej się, więc za pomocą funkcji ereg() wystarczy sprawdzić czy w numerze IP pobranym z $_SERVER["REMOTE_ADDR"] występuje IP wpisane przez Ciebie.
Jeżeli tak, wtedy wykonywane jest polecenie exit, co jest jednoznaczne z zakończeniem wyświetlania strony. Użytkownik w przeglądarce nic nie zobaczy, strona będzie pusta, bo reszta kodu strony się nie wyświetli. Przed exit możesz ewentualnie wpisać jakiś komunikat, który ukaże się blokowanemu człowiekowi...
Stosując wyrażenia regularne można definiować całe zakresy IP. Trzecia linijka zablokuje wszystkich, których numery zaczynają się od 211.32.
Jeżeli chcesz w ten sposób zabezpieczyć większą ilość stron, warto reguły wypisać do osobnego pliku, np. blokada.php i dołączyć ten plik na samym początku każdej strony stosując polecenie include:
<?
include("sciezka/blokada.php");
?>
W ten sposób będzisz modyfikować tylko jeden plik, który dołączy się do wielu stron i zablokuje niepowołanmym osobom dostęp do stron.