Schrift
[thread]205[/thread]

IP-Sperre



<< >> 7 Einträge, 1 Seite
Batzen
 2004-03-14 15:34
#1638 #1638
User since
2004-03-03
2 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo.

Irgendwie stehe ich gerade ein bischen aufm Schlauch. Ich möchte eine IP-Sperre in ein Script einbauen. Die IPs die gesperrt sind hole ich aus einer Datenbank. Nun kriege ich aber irgendwie den Vergleich nicht richtig hin. Man müsste jetzt ja irgendwie in einer Schleife die aktuelle IP-Adresse mit denen in der Datenbank vergleichen. Aber irgendwie klappt das bei mir noch nicht. Die Lösung ist wahrscheinlich furchtbar einfach, aber ich komme nicht drauf... ???
Relais
 2004-03-14 15:53
#1639 #1639
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du hast zu wenig laut gedacht, drum muß ich das mal versuchen.

Was heißt "IP sperren"?

Vielleicht geht es um den Aufruf einer dynamischen Webseite, die eine Anfrage von einer "gesperrten" Adresse anders beantworten soll, als von einer ungesperrten?

Dann geht das gleich so. Bekannt ist die IP-Adresse des Aufrufers. Mit dieser wird die Datenbank befragt, ob sie in der Menge (Tabelle) der gesperrten IP-Adressen vorhanden ist. Rest selber überlegen.

Wenn ich flasch gedacht habe, dann denk selber laut! 8)
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
pq
 2004-03-14 16:09
#1640 #1640
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
womit genau hast du denn probleme?
ein bisschen code zeigen ist immer angebracht.
for (@saved_ips){
 if ($ENV{REMOTE_ADDR} eq $_) {
   tu_was();
   last;
}
}

dass auch unschuldige dieselbe ip-adresse haben können wegen demselben
provider, das ist dir aber schon klar, oder? umgekehrt gibt es surfer,
die bei jedem aufruf eine andere ip haben.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
[E|B]
 2004-03-14 16:11
#1641 #1641
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Hey Bernd! ;)

Code: (dl )
1
2
3
4
5
6
7
8
my @ip = qw(123.43.25.1.34, 95.46.3.56.3, 35.76.21.34.3);
my $x = 0;
foreach (@ip){
if($ENV{'REMOTE_ADDR'} eq $_){
print "Du bist gesperrt!";
last;
}
}
\n\n

<!--EDIT|[E|B]|1079278345-->
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
pq
 2004-03-14 16:22
#1642 #1642
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
@E|B:
1. warum vergleichst du mit einer regex? ein punkt matcht auf ein (fast)
beliebieges zeichen!
2.  und dann noch nicht mal vorne und hinten mit ^$
verankert!
schau mal, @ip könnte 121.31.14.15 enthalten und die aktuelle
adresse ist 21.31.14.15. was passiert dann?
3. wenn $x 1 ist, hast du doch dein ziel erreicht. warum führst du dann
die schleife zuende und springst nicht raus? ist doch ineffizient.\n\n

<!--EDIT|pq|1079274518-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2004-03-14 17:28
#1643 #1643
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Der Vorschlag von Relais dürfte aber der beste sein:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
my $statement = "SELECT IP_Adresse FROM table WHERE IP_Adresse = ?;";
my $dbh = DBI->connect("DBI:mysql:$db:$host",$user,$password) or die $DBI::errstr;
my $sth = $dbh->prepare($statement);
$sth->execute($ENV{REMOTE_ADDR});
if($sth->fetchrow_array()){
print "Du bist gesperrt";
}
else{
print "Du darfst weitersurfen";
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
[E|B]
 2004-03-14 17:32
#1644 #1644
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
@pq

Danke, hast Recht. Habs abgeändert! :)
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
<< >> 7 Einträge, 1 Seite



View all threads created 2004-03-14 15:34.