#!/usr/bin/perl use strict; use warnings; use CGI; use Fcntl qw(:flock); my $htaccess_file = "/var/www/html/.test"; 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.155.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"); use Fcntl qw(:flock); open(my $htaccess_file,">", $htaccess_file) or die "Kann Datei nicht öffnen: $!"; while (<$htaccess_file,>) { my $line = $client_ip; my @result = grep ($client_ip); } close($htaccess_file) or die "Kann Datei nicht schliessen $!"; } 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__;