#! /usr/local/bin/perl ############################################################################ # # PAGELOG.CGI # # By Metertek 1999 # Metertek@yahoo.com # # Call script using a similar tag # # # . # ############################################################################ # # variables $ip = $ENV{'REMOTE_ADDR'}; $browser = $ENV{'HTTP_USER_AGENT'}; @digits = split (/\./, $ip); $address = pack ("C4", @digits); $host = gethostbyaddr ($address, 2); $user = $ENV{'REMOTE_USER'}; $id = $ENV{'REMOTE_IDENT'}; $pagemark = 'logentryhere'; $addsecs = '46800'; $imageurl = 'http://www.orbweb.net/graphics/log/pixel.gif'; $logimage = 'http://www.orbweb.net/graphics/log/pagelog.gif'; $logdir = '/mnt/web/guide/orbweb/www/nys/log'; $email = 'nys@orbweb.net'; $emailfrom = 'nys@orbweb.net'; $mail_program = '/usr/lib/sendmail -t'; $mailines = '100'; @html = ("","","
","
","
","-"); $replace = ' '; $useicon ='0'; ############################################################################ # # do not alter perl below here &date; &query; if ($query{'display'} eq '') { if ($query{'name'} eq '') {&queryerror;} $logfile = "$logdir/$query{'name'}.log"; $countfile = "$logdir/$query{'name'}.txt"; &count; open (FILE, "$logfile"); @lines = ; close(FILE); open (PLOG,">$logfile"); if ($count eq 1) {print PLOG "\n"; close (PLOG); open (FILE, "$logfile"); @lines = ; close(FILE); open (PLOG,">$logfile");} foreach $line (@lines) { $linecount = $linecount + 1; if ($line =~ //) { print PLOG "\n"; print PLOG "Visit Number $count to date
"; print PLOG "$date - $time - $ip
$host - $browser

\n";} else {print PLOG ("$line");} } close (PLOG); ℑ } else {$printfile = "$logdir/$query{'display'}.log"; &printlog;} ############################################################################ sub query { @query_strings = split("&", $ENV{"QUERY_STRING"}); foreach $q (@query_strings) { ($attr, $val) = split("=", $q); $query{$attr} = $query{$attr}."".$val;} if ($query{'name'} =~ /\/$/) {chop($query{'name'});} elsif ($query{'display'} =~ /\/$/) {chop($query{'display'});} } ############################################################################ sub queryerror { print "Content-type: text/html\n\n"; print "

PAGELOG.CGI ERROR MESSAGE

"; print "You did not specify a log filename"; exit; } ############################################################################ sub date { ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time+$addsecs); @months = ("1","2","3","4","5","6","7","8","9","10","11","12"); @days = ("Sun","Mon","Tue","Wed","Thur","Fri","Sat"); if ($sec < 10) {$sec = "0$sec";} if ($min < 10) {$min = "0$min";} if ($hour < 10) {$hour = "0$hour";} if ($hour > 11) {$ap = "PM";} if ($hour < 12) {$ap = "AM";} if ($mday < 10) {$mday = "0$mday";} $date = "@days[$wday] $mday/@months[$mon]/$year"; $time = "$hour:$min:$sec $ap"; } ############################################################################ sub count { open (COUNT, $countfile); $count = ; close(COUNT); ++$count; @nums = split(//, $count); open(PCOUNT, ">$countfile"); print PCOUNT $count; close(PCOUNT); } ############################################################################ sub image { if ($useicon eq 1) {$imageurl = $logimage;} print "Location: $imageurl\n\n"; if ($linecount > $mailines) {&mailfile;} exit; } ############################################################################ sub mailfile { open (MAIL, "|$mail_program"); print MAIL "To: $email\n"; print MAIL "From: $emailfrom\n"; print MAIL "Subject: $query{'name'}.log reset $date\n\n"; print MAIL "$query{'name'}.log reset and the following data extracted on $date at $time\n"; open (PLOG,">$logfile"); foreach $line (@lines) { foreach $html (@html) {$line =~ s/$html/$replace/g;} print MAIL "$line\n";} print PLOG "\n"; print PLOG "Visit Number $count to date
"; print PLOG "$date - $time - $ip
$host - $browser

\n"; close (PLOG); print MAIL " \n\n"; print MAIL "The information above was emailed by PAGELOG.CGI for your records.\n"; close(MAIL); } ############################################################################ sub printlog { $home = 'http://members.xoom.com/metertek/archive/'; print ("Content-type: text/html\n\n"); print ("\n"); print ("\n"); print ("\n"); print ("$query{'display'}\n"); print ("
\n"); print ("\n"); print ("NYS Visitor Log\n"); print ("

Page Down

\n"); print ("\n"); print ("
\n"); print ("\n"); print ("$ENV{'HTTP_REFERER'}\n"); print ("
\n"); print ("
\n"); open (FILE, "$printfile"); @lines = ; close(FILE); open (LOG,">$printfile"); foreach $line (@lines) {print "$line"; print LOG ("$line");} close (LOG); print ("

\n"); print ("Page Up

\n"); print ("\n"); print ("


\n"); print ("
\n"); print ("PAGELOG.CGI 1999
by
Metertek

\n"); print ("\n"); print ("\n"); exit; }