Kom ihåg mig?

PHP Blockera IP

Ämnesverktyg Visningsalternativ
Oläst 2011-08-12, 06:19 #1
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
Standard PHP Blockera IP

Jag vill blockera IP, men dock hela segment av IP adresser, då problemet i fråga hoppa mellan olika ip Adresser. Så jag vill blockera all trafik från 199.15.234.*

Den kod jag har labbat med är , men den fungera inte särskilt bra. Alltså det jag vill göra, finns förekomst av199.15.234 i REMOTE_ADDR få true annars false.

<?
$block_ip = "199.15.234";

if ( strpos( $_SERVER["REMOTE_ADDR"], $block_ip ) == 0 ) {


print "BLOCK";

} else {
print "ok";
}
?>

Vad gör jah för fel?
klein är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-08-12, 08:12 #2
foks foks är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2003
Inlägg: 727
foks foks är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2003
Inlägg: 727
Testa med "=== 0" istället för "== 0". Jag gissar att php jämställer false och 0.

Vill du vara snällare mot servern blockerar du ip-nummer med .htacess istället för med php.
foks är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-08-12, 09:15 #3
captaindoes avatar
captaindoe captaindoe är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2010
Inlägg: 431
captaindoe captaindoe är inte uppkopplad
Flitig postare
captaindoes avatar
 
Reg.datum: Dec 2010
Inlägg: 431
Ett sätt du kan lösa detta problem är att explodera ip adressen på "." . Då kan du enkelt jämföra med din ip adress.
Exempel:

Jag försöker gå på sidan med IP: 199.15.235

Om du exploderar min ip så blir [0] = 199, [1] = 15 [2] = 235.

Då kan du enkelt köra en loop.

PHP-kod:
if($exploded[0] == "199") {
//ok ip adressen är 199. Han kan vara bannad

   
if($exploded[1] == "15") {
      
// troligare att han är bannad

       
if($exploded[2] == "234") { 
        
// japp den här grabben är bannad och ska inte få vara här
       
}
    }
} else {
// Jag kom in på sidan eftersom jag var inte bannad. Jad hade ju up 199.15.235, och inte 199.15.234.

ett annat sätt som är med mindre if statements är ju följande.

PHP-kod:
if($exploded[0] == "199" && $exploded[1] == "15" && $exploded[2] == "234") {
// bannad
} else {
//ok


Senast redigerad av captaindoe den 2011-08-12 klockan 09:27 Anledning: omslöt php koden med php taggar
captaindoe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-08-12, 10:26 #4
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 586
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 586
Citat:
Ursprungligen postat av foks Visa inlägg
Testa med "=== 0" istället för "== 0". Jag gissar att php jämställer false och 0.

Vill du vara snällare mot servern blockerar du ip-nummer med .htacess istället för med php.
Stämmer, man ska aldrig använda vanliga lika med när det gäller strpos.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-08-12, 13:55 #5
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
Exempel på sådan .htacess? Antaligen bäst är att blockera med en loka brandvägg

Citat:
Ursprungligen postat av foks Visa inlägg
Testa med "=== 0" istället för "== 0". Jag gissar att php jämställer false och 0.

Vill du vara snällare mot servern blockerar du ip-nummer med .htacess istället för med php.
klein är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-08-12, 14:11 #6
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Citat:
Ursprungligen postat av klein Visa inlägg
Exempel på sådan .htacess? Antaligen bäst är att blockera med en loka brandvägg
Det bästa är helt klart att göra det i webbservern eller i brandväggen såvida det är något som ska hämta blockeringar ifrån en databas.

Har du det här i din .htaccess-fil blockeras 199.15.234.*(alla IP:n mellan 199.15.234.0 och 199.15.234.255) och 199.15.235.21:

Kod:
order allow,deny
deny from 199.15.234. 
deny from 199.15.235.21
allow from all

Senast redigerad av pelmered den 2011-08-12 klockan 14:14
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-08-12, 14:40 #7
fabians avatar
fabian fabian är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2004
Inlägg: 2 160
fabian fabian är inte uppkopplad
Klarade millennium-buggen
fabians avatar
 
Reg.datum: Jul 2004
Inlägg: 2 160
Ja att göra det i .htaccess låter vettigast...

Annars finns det gott om träffar i google som beskriver hur du blockerar IP med wildcards...

http://perishablepress.com/press/200...sses-with-php/
fabian är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-08-13, 11:09 #8
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
Den kan vara riktigt vettig lösning. Fundera på att aktivera brandväggen i ubuntu, men det finns risker men det också, att skriver fel regel och sedan har man sönder SSH accessen till serven. Det är inte kul att konsol koppla maskinen..


Citat:
Ursprungligen postat av ITisGood.se Visa inlägg
Det bästa är helt klart att göra det i webbservern eller i brandväggen såvida det är något som ska hämta blockeringar ifrån en databas.

Har du det här i din .htaccess-fil blockeras 199.15.234.*(alla IP:n mellan 199.15.234.0 och 199.15.234.255) och 199.15.235.21:

Kod:
order allow,deny
deny from 199.15.234. 
deny from 199.15.235.21
allow from all
klein är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-08-13, 12:47 #9
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
Finns det något sätt i .htaccess att skicka besökare från blockad IPn vidare till php script?

Citat:
Ursprungligen postat av klein Visa inlägg
Den kan vara riktigt vettig lösning. Fundera på att aktivera brandväggen i ubuntu, men det finns risker men det också, att skriver fel regel och sedan har man sönder SSH accessen till serven. Det är inte kul att konsol koppla maskinen..
klein är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 14:21.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017