A Harder által írt megoldás is tökéletesen működik, ám van egy szépséghibája: minden egyes új tiltott IP-nél bele kell nyúlni a kódba.

Ezért összedobtam egy kicsit hosszabb kódot, amiből ez a "bug" eltűnik. Most itt nem kezdem el idézgetni a kódot, amit itt lehet megtalálni. Az összes összezippelve kb. 4 kilobájt (amúgy 7), úgyhogy most inkább elmondom, hogy hogyan kell használni, és egy kis leírást adok a cuccokról.

flat-file

Ez a szkript nem használ semmilyen adatbázist, hanem egy fileban tárolja a bannolt IP címeket.

A file neve alapesetben ips.dat, de ezt le lehet cserélni, később kifejtem hogyan.

Ha emellett a megoldás mellett döntünk (mert például nincs MySQL adatbázis a szerverünkön), akkor valahogy installálni kéne. Ez nem nehéz, összevissz fel kell tennünk a szerverre.

Ajánlott egy külön könyvtárba (pl.: ip_banner) tenni, így elkerülhető az, hogy bárki szabadon nézegethesse a letiltott IP-címeket, ezenkívül - mivel az admin felület nincs lejelszavazva - szabadon módosítgathassa azokat.

Miután feltöltöttük a tárhelyünkre a levédendő oldalakba tegyük bele a következő kódot:

kód<?php

include 'index.php';

banned_ips();

?>

Ezt a kódot a következők szerint módosíthatjuk: Ha egy külön könyvtárba tettük (tehát nem a gyökérre ("/")), akkor az include-nak meg kell adni a teljes elérési utat...

A banned_ips() függvény elfogad egy paramétert: az ellenőrzendő file nevet. Itt is teljes elérési utat kell használnunk, és ami a legfontosabb: ha a fileokat külön könyvtárba tettük, akkor a paraméter mindig megadandó a következő formában: banned_ips('könyvtár_neve/file_neve')

Azonban ha módosítjük a file nevet, akkor az on-line menedzseléshez bele kell nyúlni a kódba: az admin.php második sorában az "ips.dat" filenevet le kell cserélnünk a tényleges fájlnévre.

Egy példa. A fileokat az "ip-banner" könyvtárba töltöttük fel, és a gyökérkönyvtárban levő index.html file-t szeretnénk, hogy védve legyen. Ekkor az index file elejére a következőt szúrjuk be:

kód<?PHP

include 'ip-banner/index.php';

banned_ips('ip-banner/ips.dat';

?>

MySQL

Ehhez a változathoz már kell a MySQL elérés.

A legtöbb dolog megegyezik a fentiekben leírtakkal, ám van két eltérés:

Az admin felület elindításához módosítanunk kell az abban levő néhány adatot.

$db['host'] = 'localhost';

$db['user'] = 'root';

$db['pass'] = '';

$db['db'] = 'temp';

Ezt kell lecserélnünk a szolgáltatótól/rendszergazdától megkapott adatokra. A host a szerver címét írja le, a user az ahhoz szükséges felhasználónevünket, a pass a jelszavunkat, és a db annak az adatbázisnak a nevé, amelyikben tároljuk a bannolt IPéket (is).

A másik lényeges eltérés a banned_ips() függvény paraméterezése. Ha nem adunk meg neki paramétereket, és már van élő MySQL kapcsolatunk, akkor működnie kell(ene). Ha így nem működik, vagy nincs élő MySQL kapcsolatunk, akkor az admin.php-ban található sorrendben meg kell adni az adatokat a következő formában (ha a fenti példát vesszük figyelembe):

banned_ips('localhost', 'root', '', 'temp');

Ami sok embernek szinte már természetes, az az, hogy az SQL táblát fel kell vinni az adatbázisba pl. a phpmyadmin-on keresztül. Az SQL dumpot megtaláljuk sql.sql néven.

Converter

Ha már összeszedtünk jó néhány IP címet, de a másik módszerre szeretnénk váltani akkor használjuk ezt. Oda vissza konvertál, a fentiek ismeretében nem lehet gond a használatával

Harder

Harder

Profil