MASS BAN pe clasa de IP ?

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

AgLiAn
PHPRomania Supporter
Mesaje: 16
Membru din: Vin Noi 05, 2004 10:17 pm
Localitate: Iaşi
Contact:

MASS BAN pe clasa de IP ?

Mesajde AgLiAn » Sâm Dec 04, 2004 12:11 am

Am codul...
[php]
$bmode = 1;
$blockip = array("127.0.0.1");

$mesaj = "<title>IP-ul " . $_SERVER["REMOTE_ADDR"] ." este restrictionat !!!</title><br><br><center><font color=\"red\" size=\"12\"><b>!!! ACCES INTERZIS !!!</b></font></center><br><br>Accesul tau la aceasta pagina este interzis pentru ca:";

$blockmsg = array("" . $mesaj . " <b><u>motiv?</u></b> <br><br><br>",
);

$x = count($blockip);

for ($y = 0; $y < $x; $y++) {
if ($bmode == 1 && $REMOTE_ADDR == $blockip[$y]) {
exit($blockmsg[$y]);
} else if ($bmode == 0 && $REMOTE_ADDR == $blockip[$y]) {
break;
}
}[/php]

ceea ce vreau eu, sa pot sa BAN-ez pe site o intreaga clasa de IP. Daca pun [php]$blockip = array("127.0.0.*");[/php] nu imi ia nici un IP. Sper sa ma poata ajuta cineva.. sa modifice codul sa pot pune doar clasa de IP`uri, sa nu fie nevoie sa scriu fiecare IP in parte.
Have nice day



Avatar utilizator
arond
Senior Member
Mesaje: 580
Membru din: Joi Mar 11, 2004 2:00 am
Localitate: 127.0.0.1
Contact:

Mesajde arond » Sâm Dec 04, 2004 1:38 am

Evident, cheia e la $REMOTE_ADDR = $blockip[$y].

Ce e mai interesant e ca n-ai habar de PHP: cum ti-ai imaginat ca punand 127.0.0.* in loc de 127.0.0.1, in codul postat, vei obtine ce doresti ? :)

Si acum, codul:

[php]
/*
Lista adreselor ("clase de adrese" - desi e incorect, clasele de adrese IP inseamna altceva)

Fiecare element din array-ul de mai jos e o expresie regulata (regex) care determina "clasa de adrese" - exemplul este cam ce vroiai tu cu 127.0.0.*
*/
$banned_ips = array(
'127\.0\.0\..*',
);

/*
Dupa executia buclei de mai jos variabila $banned va fi TRUE daca adresa e banned si FALSE daca nu
*/
$banned = false;
foreach ($banned_ips as $banned_ip)
if (preg_match($banned_ip, $REMOTE_ADDR))
{
$banned = true;
break;
}
[/php]

Numa' bune.

[offtopic]
Cred ca ar trebui sa se creeze un nou forum: ceva de genul "Cereri de scripturi" unde ar trebui sa posteze nu cei care vor sa invete ci cei care vor anume scriptuiri.
[/offtopic]
People ask for criticism, but they only want praise.
W. Somerset Maugham (1874 - 1965).

http://www.arond-design.ro


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 20 vizitatori