Gå til innhold

in array : ban ip som f.eks. 192.168.1.* (jokertegn)


Anbefalte innlegg

Jeg har laget en banlist på websiden min pga ddos-lignende angrep fra flere tusen IP-er. Listen har blitt så lang, og mange IP-er ser ganske like ut... Eksempel: 74.6.*.*

 

Per i dag har jeg lagret IP-ene i en array - $antiflood_banlist

og bruker if in_array() for å stoppe besøkende som er i banlista.

 

$antiflood_banlist = ('74.6.1.24', '1.1.1.2.', '10.0.0.1', '74.6.223.6');
if(in_array($_SERVER['REMOTE_ADDR'], $antiflood_banlist))
{ echo "Din IP er bannet."; }

 

Hvordan kan jeg stenge ute IPer med jokertegn?

Ønsker å banne 74.6.*.* med flere.

 

Håper på hjelp :)

Lenke til kommentar
Videoannonse
Annonse

SELECT id FROM bannedIps WHERE from <= INET_ATON( $_SERVER['REMOTE_ADDR'] ) AND to >= INET_ATON( $_SERVER['REMOTE_ADDR'] );

 

Om du ikke har dette i en MySQL-database ( som du bør ha ) kan du bruke ip2long() og lagre maks og min verdier i en range.

 

192.168.*.* blir

 

if ( ip2long( $_SERVER['REMOTE_ADDR'] ) >= ip2long( 192.168.0.0 ) && ip2long( $_SERVER['REMOTE_ADDR'] ) <= ip2long( 192.168.255.255 ) ) {

fireZeLazers();

}

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...