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:
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:
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