Hallo,
Guten tag,
$ip_now = $ENV{'REMOTE_ADDR'};
$ip_ab = "64.2.240.1";
@ip_ac =~ split(/^\d+.\d+.\d+.\d+$/);
Muss man $ip_ab nicht splitten mit @ip_ac um die ip genau zu
formulieren? Desshalb diese zeile.
Wozu willst du denn die IP in die einzelnen Teile zerlegen. Das verstehe ich nicht?
foreach $ip_ab (@ip_ac)
{
if ($ip_ab == $ip_now)
Die variable $ip_now wird benötigt noch für eine zweite funktion
die aber eigentlich nichts mit der überprüfung von der liste zu tun hat.
Kein Problem, dann fügst du eben $ip_now statt $ENV{'REMOTE_ADDR'} in meinem Script ein.
Du hast hier Strings und keine Zahlen, also eq statt == .Verwendest du nicht -w und use strict ?
hab ich schon aber nützt mir nicht viel,da der browser nur
"Software error:
Execution of /homepages/16/d1234567/htdocs/temp1/indextest.cgi
aborted due to compilation errors."meldet.
Wie übrigens auch bei Deinem Beispiel. >>>>?
Doch, mein Bsp. funktioniert. Was steht den im Errolog ? Ich kenne Puretec nicht, vielleicht liegt es daran daß der Pfad zu Perl nicht stimmt (#!/usr/bin/perl). Aber schwer zu sagen, ohne zu wissen was im Errolog steht. Was zu beachten ist, das Script funktioniert natürlich nicht von der Eingabeaufforderung aus, da dort keine IP zurückgegeben wird.
Natürlich kannst du jetzt auch hergehen, und rückfragen, ob eine IP ausgegeben wird.Ich wollte es im Bsp. nur vereinfacht darstellen.
{print "Content-type: text/html\n\n";
print "your IP $ip_now was banned from this chat\n";}}
Hmmm hier mal eine Möglichkeit :
#!/usr/bin/perl -w
use strict;
my @gesperrte_ips = ('212.34.57.14','47.2.234.6','12.234.75.2','255.67.4.21','195.3.133.87','93.45.2.46');
print "Content-type:text/html\n\n";
foreach(@gesperrte_ips) {
if ($_ eq $ENV{'REMOTE_ADDR'}) {
print "Deine IP $_ ist gesperrt !\n";
}
}
Kann es sein dass wenn einmal ein fehler passiert ist der server nur noch dies meldet?
Nein, der Server raunzt nur, wenn wirklich ein Fehler darin vorkommt.
$xNeTworKx.