#!/usr/bin/perl use strict; use warnings; use CGI; my $htaccess_file = "/pfad/file"; my $cgi = CGI->new; my $param_IP = $cgi->param('IP'); # Hole den Parameter IP (=Inhalt der Textarea) my $client_ip = $ENV{'REMOTE_ADDR'}; # ermittle IP des Clients, sollte bei CGI gesetzt sein #my $client_ip = "192.168.0.250"; print($client_ip); if($client_ip =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/) { $client_ip = $1; } chomp($client_ip); if($client_ip =~ m/^(\d\d?\d?)\.(\d\d?\d?)\.(\d\d?\d?)\.(\d\d?\d?)$/) { print("\n$client_ip gefunden\n"); if($1 <= 255 && $2 <= 255 && $3 <= 255 && $4 <= 255) { print("Jeder Bereich der IP ist gültig - $1.$2.$3.$4\n"); print("\n$client_ip ist eine IPv4\n"); print `perl -p -i -e 's/allow from $client_ip//g' $htaccess_file` } else { print("\n$client_ip ist keine gültige IPv4\n"); } } else { print("\n$client_ip hat das falsche Format\n"); } print $cgi->header( -status => '204 No Content',); # only HTTP header is in response __END__;