IP címek bannolása II.

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

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét