954,541 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

simple scripting question, CGI log

hello, i use a simple log script on my site.. very basic..
i would like to modify it, and am having issues..
here is what i would like...
i would like to be able to have it filter out certian HOST names.. but not exact.. say for instance, i dont want it logging yahoo slurp.. the host name changes, but always ends in yahoo.com
so, i would like to filter out djfdk.388338.djdk.yahoo.com
and i would like to be able to add more than one, a list of filtered hosts, not IP's, that will not be logged..
so, i would like to change the $me var, to host, but not exact host, just domain (like i stated earlier) and then to create a list, by coma.
thanks a bunch
pj

here is the script:

#!/usr/bin/perl

$me = "38.117.78.220";  
$log = "/home/to/my/log.html";

#############################

if (!$ENV{'REMOTE_HOST'}) {my @subnet_numbers = split (/\./, $ENV{'REMOTE_ADDR'});
$ENV{'REMOTE_HOST'} = gethostbyaddr(pack("C4", @subnet_numbers), 2) || $ENV{'REMOTE_ADDR'};
	}

$ippjrey = $ENV{'REMOTE_ADDR'};
$hostpjrey = $ENV{'REMOTE_HOST'};
$privatepjrey = $ENV{'HTTP_X_FORWARDED_FOR'};

$getdate = `date +"%A %B %d, %Y, %r"`; 
chop ($getdate);


if ($ENV{'REMOTE_ADDR'} eq $me) {
   open (LOG, "$log");
   @lines = <LOG>;
   close (LOG);
   print "Content-type: text/html\n\n";
   open (LOG, ">$log");
   print LOG @lines;
   close (LOG);  

 

}
 
else {

   open (LOG, "$log");
   @lines = <LOG>;
   close (LOG);
   print "Content-type: text/html\n\n";
   open (LOG, ">$log");
    print LOG " [ <font size=-2 face=Verdana, Arial><B>Time:</B> $getdate ] </font>- \n";
    print LOG " [ <font size=-2 face=Verdana, Arial><B>With:</B> $ENV{'HTTP_USER_AGENT'} ]<BR></font>\n";
    print LOG " [ <font size=-2 face=Verdana, Arial color=red><B>Host: $ippjrey/$hostpjrey || [ $privatepjrey ] </B>]</font>\n";
    print LOG " [ <font size=-2 face=Verdana><B>From:</B> <font color=blue><A HREF=$ENV{'HTTP_REFERER'}>$ENV{'HTTP_REFERER'}</font></A></font>]<BR>\n";
    print LOG " [ <font size=-2 face=Verdana><B>Pages:</B> $here $ENV{'DOCUMENT_URI'} ]<BR><BR></font>\n\n";
   print LOG @lines;

   close (LOG);  

 

}
exit;
pjrey
Junior Poster in Training
54 posts since Sep 2008
Reputation Points: 10
Solved Threads: 0
 

anyone??

pjrey
Junior Poster in Training
54 posts since Sep 2008
Reputation Points: 10
Solved Threads: 0
 

Sorry, I have read your question three times and I can't understand what you want to do.

KevinADC
Posting Shark
921 posts since Mar 2006
Reputation Points: 246
Solved Threads: 67
 

Hey dude
Let me repharse ur question, Sorry if i understood wrong

If log is having
aaa.ccc.ddd.eee.Yahoo.com
dfsdfsdsdf.gmail.com

Then u like to have
only yahoo.com
gmail.com

is this u are looking for ?

msvinaykumar
Light Poster
48 posts since May 2006
Reputation Points: 10
Solved Threads: 6
 

So I'm assuming you are looking for things that "end with" such and such,

that being the case a simple regular expression might do?

if ($line =~ m/yahoo.com/i)
{
if ($line =! m/^(www.|http:\/\/).yahoo.com/i)
{
print $line . "\n";
}

That line will basically take and do a search on anything containing
yahoo.com (case insensitive) then if it doesn't start with, www.yahoo.com , or http://yahoo.com
print the line out.

I'm not sure if that helps, hope it does

onaclov2000
Junior Poster in Training
57 posts since Jun 2008
Reputation Points: 11
Solved Threads: 5
 

thanks, ill give it a try (major delay, i know.. never got the notification that you posted back)

thanks!
pj

pjrey
Junior Poster in Training
54 posts since Sep 2008
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You