Hi,
Could someone help and tell me how to modify this script so it show the IP for each user that is on-line? (I know very little about Perl)
my $time_now=time;
my $visitor_ip=$ENV{'REMOTE_ADDR'};
my $visitors="1";
my(@new);
open(DATA, "$data_file")|| file_error("Error reading <u>$data_file</u> : $!");
my @data=<DATA>;
close(DATA);
foreach my $data_value (@data){
my($logged_ip, $logged_time) = split(/\|/, $data_value);
my $time_diff=$time_now-$logged_time;
push(@new, $data_value) if ($time_diff <= $timeout);
}
open(UPDATED, ">$data_file")|| file_error("Error writing to <u>$data_file</u> : $!");
foreach my $record (@new) {
my($logged_ip, $logged_time) = split(/\|/, $record);
print UPDATED "$record" if ($visitor_ip ne $logged_ip);
$visitors++ if ($visitor_ip ne $logged_ip);
}
print UPDATED "$visitor_ip|$time_now\n";
close(UPDATED);
sub file_error {
print "Content-type: text/html\n\n";
print "<font face=Verdana size=2>@_</font>";
exit;
}
print "Content-type: text/html\n\n";
print "$visitors";
exit;
Could someone help and tell me how to modify this script so it show the IP for each user that is on-line? (I know very little about Perl)
my $time_now=time;
my $visitor_ip=$ENV{'REMOTE_ADDR'};
my $visitors="1";
my(@new);
open(DATA, "$data_file")|| file_error("Error reading <u>$data_file</u> : $!");
my @data=<DATA>;
close(DATA);
foreach my $data_value (@data){
my($logged_ip, $logged_time) = split(/\|/, $data_value);
my $time_diff=$time_now-$logged_time;
push(@new, $data_value) if ($time_diff <= $timeout);
}
open(UPDATED, ">$data_file")|| file_error("Error writing to <u>$data_file</u> : $!");
foreach my $record (@new) {
my($logged_ip, $logged_time) = split(/\|/, $record);
print UPDATED "$record" if ($visitor_ip ne $logged_ip);
$visitors++ if ($visitor_ip ne $logged_ip);
}
print UPDATED "$visitor_ip|$time_now\n";
close(UPDATED);
sub file_error {
print "Content-type: text/html\n\n";
print "<font face=Verdana size=2>@_</font>";
exit;
}
print "Content-type: text/html\n\n";
print "$visitors";
exit;