#! /usr/local/bin/perl # ssilog.pl Written by Yo kubota Dec.28.1997. This scrript is public domain. $recipient = 'yokubota@fin.ne.jp'; # your mail address $logfile = '/home/yokubota/public_html/mail-log/log.txt'; # log file name (absolute) $mailprogam = '/usr/lib/sendmail'; # send mail path (absolute) #----- Set up above to customize this script ------------; # create a date+time string ($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime(time); $mon=$mon+1; if ($sec < 10) { $sec = "0$sec"; } if ($min < 10) { $min = "0$min"; } if ($hour < 10) { $hour = "0$hour"; } if ($mon < 10) { $mon = "0$mon"; } $wday = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$wday]; $date = "$year/$mon/$mday($wday)\n"; $time = "$hour:$min:$sec"; # Some of Perl's network info functions required here ($part1,$part2,$part3,$part4)=split(/\./,$ENV{REMOTE_ADDR}); $IP_adr=pack("C4",$part1,$part2,$part3,$part4); ($host_name)=(gethostbyaddr("$IP_adr", 2)); # open log file for output and append new log data open (LOGFILE, "+<$logfile") || die "Can't open logfile!\n"; # open for read AND write flock(LOGFILE, 2); # lock it $datelog = ; # read date if ($date eq $datelog) { # date change ? seek LOGFILE,0,2; # go to end of file } else { seek LOGFILE,0,0; # go to begin of file @log = ; # read log file seek LOGFILE,0,0; # go to begin of file truncate (LOGFILE,0); # empty the file print LOGFILE "$date\n"; open (MAIL, "|$mailprogam -t") || die "Can't open $mailprogam!\n"; print MAIL "From: log-mail.cgi\n"; # send mail print MAIL "To: $recipient\n"; print MAIL "Subject: Mail-log File\n\n"; print MAIL "@log\n"; close MAIL; } print LOGFILE "$time,$ENV{'DOCUMENT_URI'},$host_name,$ENV{'REMOTE_ADDR'},$ENV{'HTTP_USER_AGENT'},$ENV{'HTTP_VIA'},$ENV{'HTTP_X_FORWARDED_FOR'},$ENV{'HTTP_REFERER'}\n"; close LOGFILE; exit(0); # end of script