Profil | Mitglieder | Registrieren | Start | Suche


PHP-Support.de » Programmierung » PHP & MySQL » Codeschnipsel » IP sperre    » Hallo Gast [Login | Registrieren]

Neues Thema | Antworten   

Autor Beitrag
Lukas der Krasse
Mitglied
Guter User


Dabei seit: 18.06.2007
Herkunft: Österreich
Posts: 420
     IP sperre Zitat | Bearbeiten

Lästige Besucher per IP sperren.
Man muss sie ganz am Anfang der Seite einfügen!

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
<?php
function ipCheck($ip) {
    if(
in_array($_SERVER['REMOTE_ADD'], $ip)) {
        return 
true;
    } else {
        return 
false;
    }
}

//Gesperrte IPs
$ip = array("242.168.30.260""182.359.70.270""132.251.120.280""182.159.120.290""212.128.10.299");
if(
ipCheck($ip)) {
    
header("Location: andereSeite.php");
    exit;
}

?>







Post wurde schon 3x editiert, das letzte mal am 06.08.2008 um 12:46 von Andavos
29.09.2007, 16:24 Profil | PM | E-Mail  
Quietscheente
Mitglied
Sehr guter User


Dabei seit: 13.02.2005
Herkunft: Karlsruhe
Posts: 939
      Zitat | Bearbeiten

Das geht einfacher mit in_array()


29.09.2007, 19:13 Profil | PM | E-Mail  
fre4k
Mitglied
Guter User


Dabei seit: 16.02.2007
Herkunft: 127.0.0.1
Posts: 344
      Zitat | Bearbeiten

das script schön und gut;
aber lukas, denk daran das du das nächste mal die ip's herausnimmst was im script stehen ....

hf


Das Bill Gaytes'sche Gesetz

Wissen = Macht
Macht = Arbeit/Zeit
Zeit = Geld
=> Wissen = Arbeit/Geld
=> Geld = Arbeit/Wissen
=> Je weniger das Wissen, desto mehr das Geld!
30.09.2007, 08:49 Profil | PM | E-Mail  
Rudelwolf
Mitglied
Sehr guter User


Dabei seit: 04.08.2006
Herkunft: Geislingen an der Steige
Posts: 553
      Zitat | Bearbeiten

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
<?php

function ipCheck($ip) {
    if(
in_array(getenv("REMOTE_ADDR"), $ip)) {
        return 
true;
    } else {
        return 
false;
    }
}

$ip = array("242.168.30.60""182.359.70.280""132.551.120.80""482.359.120.440""172.128.10.110");
if(
ipCheck($ip)) {
    echo 
"Hier darfst du nicht hin";
} else {
    echo 
"Willkommen ;)";
}
?>


eine andere Variante von mir sind die gleichen ips wie oben




Post wurde schon 1x editiert, das letzte mal am 30.09.2007 um 09:25 von Rudelwolf
30.09.2007, 09:25 Profil | PM | E-Mail  
Quietscheente
Mitglied
Sehr guter User


Dabei seit: 13.02.2005
Herkunft: Karlsruhe
Posts: 939
      Zitat | Bearbeiten

Zitat:
Orginal von fre4k
das script schön und gut;
aber lukas, denk daran das du das nächste mal die ip's herausnimmst was im script stehen ....

hf

Ich würde mal ganz frei behaupten, dass die IPs erfunden sind, weil es zum Beispiel die 482.359.120.440 IP nicht gibt.


30.09.2007, 10:51 Profil | PM | E-Mail  
oz
Mitglied
Guter User


Dabei seit: 20.05.2005
Herkunft:
Posts: 449
      Zitat | Bearbeiten

Zitat:
Orginal von Quietscheente
Ich würde mal ganz frei behaupten, dass die IPs erfunden sind, weil es zum Beispiel die 482.359.120.440 IP nicht gibt.


Zitat:
#whois 172.128.10.110

OrgName: America Online
OrgID: AOL
Address: 22000 AOL Way
City: Dulles
StateProv: VA
PostalCode: 20166
Country: US

NetRange: 172.128.0.0 - 172.191.255.255
CIDR: 172.128.0.0/10
NetName: AOL-172BLK
NetHandle: NET-172-128-0-0-1
Parent: NET-172-0-0-0-0
NetType: Direct Allocation
NameServer: DAHA-01.NS.AOL.COM
NameServer: DAHA-02.NS.AOL.COM
NameServer: DAHA-07.NS.AOL.COM
Comment: ADDRESSES WITHIN THIS BLOCK ARE NON-PORTABLE
RegDate: 2000-03-24
Updated: 2003-08-08

RTechHandle: AOL-NOC-ARIN
RTechName: America Online, Inc.
RTechPhone: +1-703-265-4670
RTechEmail: domains@aol.net

OrgAbuseHandle: AOL382-ARIN
OrgAbuseName: Abuse
OrgAbusePhone: +1-703-265-4670
OrgAbuseEmail: abuse@aol.net

OrgNOCHandle: AOL236-ARIN
OrgNOCName: NOC
OrgNOCPhone: +1-703-265-4670
OrgNOCEmail: noc@aol.net

OrgTechHandle: AOL-NOC-ARIN
OrgTechName: America Online, Inc.
OrgTechPhone: +1-703-265-4670
OrgTechEmail: domains@aol.net


Wohl eher Zufall


30.09.2007, 12:19 Profil | PM | E-Mail  
Quietscheente
Mitglied
Sehr guter User


Dabei seit: 13.02.2005
Herkunft: Karlsruhe
Posts: 939
      Zitat | Bearbeiten

Um die Liste zu verfollständigen:
Zitat:
whois 242.168.30.60
No whois server is known for this kind of object.

Zitat:
whois 182.359.70.280
No whois server is known for this kind of object.

Zitat:
whois 132.551.120.80
No whois server is known for this kind of object.

Zitat:
whois 482.359.120.440
No whois server is known for this kind of object.


==> Die einzig funktionierende IP wäre die letzte. Allerdings glaub ich nicht, dass zu dieser irgendein Bezug hergestellt werden kann sondern einfach frei ausgewählt wurde, denn immerhin haben 3 von 5 IPs mindestens einen Zahlenblock, der größer als 255 ist (und somit ungültig).


30.09.2007, 14:44 Profil | PM | E-Mail  
Manko10
Mitglied
Sehr guter User


Dabei seit: 30.03.2007
Herkunft: Dschörmänie
Posts: 840
      Zitat | Bearbeiten

Jetzt komme ich aber mal zu einem anderen Punkt, nämlich dem, dass eine reine IP-Sperre meist ziemlich nutzlos ist.
Ich weiß ja nicht, wie das bei euch ist, aber bei mir ändert sich die IP-Adresse regelmäßig und das ganz ohne Proxy.
Ich würde noch weitere Maßnahmen empfehlen. Dabei sei gleich gesagt: Ein Schutz ist das nicht, mehr eine zeitlich begrenzte Abwehrmaßnahme bei unerfahrenen Usern.

Datei ips.php (IP-Platzhalter verwendet):
 PHP 
1:
2:
3:
4:
<?php
xx
.xxx.xx.xx
yy
.yyy.yy.yy
zz
.zzz.zz.zz


 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
<?php
function ip_check() {
    
$filename "ips.php";
    
$ips = array();
    
    
$file = @fopen($filename"r");
    while (!
feof($file)) {
        
$tmp = @fgets($file30);
        if (
$tmp != "<?php") {
            
$ips[] = $tmp;
        }
    }
    @
fclose($file);
    
    if (
in_array($_SERVER["REMOTE_ADDR"], $ips)) {
        
setcookie("MyLovelyBadCookie""1"time()+60 60 24 365 10);  // 10 Jahre Lebensdauer dürften genug sein :-)
        
@fclose($file);
        return 
false;
    } elseif (isset(
$_COOKIE["MyLovelyBadCookie"])) {
        
$file = @fopen($filename"a");
        @
fwrite($file"\n".$_SERVER["REMOTE_ADDR"]);
        @
fclose($file);
        return 
false;
    }
    
    return 
true;
}

if (
ip_check()) {
    echo 
"Herzlich willkommen!";
} else {
    echo 
"B&ouml;se Buben kommen hier nicht rein!";
}
?>


Ich habe das Skript jetzt nicht getestet, es müsste aber funktionieren. Wenn nicht, bitte hier posten.

LG
Manko10


Tutorials:
Barrierefreie CAPTCHAs (2)
Rechtevergabe mit boolescher Algebra

_________________

Ich lese keine Posts ohne aussagekräftigen Titel!
PHP-Manual - MySQL-Manual - Top10 der PHP-Fragen - RegisterGlobals, was ist das? - Warum Frames out sind (und es immer schon waren...)
01.10.2007, 21:15 Profil | PM | E-Mail  
Gast


      Zitat | Bearbeiten

Hi
Ich hab mir vor kurzem auch eins geschrieben, wenn der User z.B. viele falsche Eingaben macht, wird er mittels .htaccess datei gebannt und auf google weitergeleitet. (Ich hab erst mit dem Programmieren angefangen, ist bestimmt nicht so gut.. aber ich poste es trozdem mal )

banned.php
~~~~~~~~~~

<?php


function bannen(){

$file = ".htaccess";
if(!file_exists($file)){
$fp = fopen(".htaccess","w");

fwrite($fp,$text);
fclose($fp);

}else{
$fp = fopen($file, "a");
$text = " deny from " . getenv("REMOTE_ADDR") . " ";
fwrite($fp,$text);
fclose($fp);

}
}
bannen();

echo "<h1>You`re banned, n00b !";


----------

.htaccess datei:
~~~~~~~~~~~~~~~~~

ErrorDocument 403 http://www.google.com



29.01.2008, 20:17  
Nicklas2751
Mitglied
Sehr guter User


Dabei seit: 19.02.2008
Herkunft: Bayern
Posts: 519
     Naja Zitat | Bearbeiten

Zitat:
Orginal von Manko10
Jetzt komme ich aber mal zu einem anderen Punkt, nämlich dem, dass eine reine IP-Sperre meist ziemlich nutzlos ist.
Ich weiß ja nicht, wie das bei euch ist, aber bei mir ändert sich die IP-Adresse regelmäßig und das ganz ohne Proxy.
Ich würde noch weitere Maßnahmen empfehlen. Dabei sei gleich gesagt: Ein Schutz ist das nicht, mehr eine zeitlich begrenzte Abwehrmaßnahme bei unerfahrenen Usern.

Datei ips.php (IP-Platzhalter verwendet):
 PHP 
1:
2:
3:
4:
<?php
xx
.xxx.xx.xx
yy
.yyy.yy.yy
zz
.zzz.zz.zz


 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
<?php
function ip_check() {
    
$filename "ips.php";
    
$ips = array();
    
    
$file = @fopen($filename"r");
    while (!
feof($file)) {
        
$tmp = @fgets($file30);
        if (
$tmp != "<?php") {
            
$ips[] = $tmp;
        }
    }
    @
fclose($file);
    
    if (
in_array($_SERVER["REMOTE_ADDR"], $ips)) {
        
setcookie("MyLovelyBadCookie""1"time()+60 60 24 365 10);  // 10 Jahre Lebensdauer dürften genug sein :-)
        
@fclose($file);
        return 
false;
    } elseif (isset(
$_COOKIE["MyLovelyBadCookie"])) {
        
$file = @fopen($filename"a");
        @
fwrite($file"\n".$_SERVER["REMOTE_ADDR"]);
        @
fclose($file);
        return 
false;
    }
    
    return 
true;
}

if (
ip_check()) {
    echo 
"Herzlich willkommen!";
} else {
    echo 
"B&ouml;se Buben kommen hier nicht rein!";
}
?>


Ich habe das Skript jetzt nicht getestet, es müsste aber funktionieren. Wenn nicht, bitte hier posten.

LG
Manko10



Ich würde lieber keine cookies benutzen da mann die recht einfach löschen kann wenn man will ;-)



Über mich

----------------

05.03.2008, 14:09 Profil | PM | E-Mail  
Seiten (1):  1 
PHP-Support.de » Programmierung » PHP & MySQL » Codeschnipsel » IP sperre   

Neues Thema | Antworten   


Powered by Command Board 1.0 - Beta 2.0 © 2004-08 PHP-Einfach | Impressum | Datenschutz