Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^5: mod_perl blocking greedy clients

by spiritway (Vicar)
on Feb 12, 2006 at 08:13 UTC ( [id://529630]=note: print w/replies, xml ) Need Help??


in reply to Re^4: mod_perl blocking greedy clients
in thread mod_perl blocking greedy clients

If you're using cPanel, you might want to have a look at their Hotlink Protection feature. This feature allows you to forbid direct access to image files (or any file types you specify). Users can still access the images through your Web pages, but they won't be able to simply slurp up your photos.

I suggest that you have a look at your log files, though. The repeated accessing of your images by only a few users (or rather, only a few IP numbers) suggests an automated process, not people. In that case, you can use cPanel's IP Deny feature, which allows you to block individual IP's, or sets of them. You might also check whether these rude accesses are by a bot, but it really doesn't matter - whoever or whatever it is, it's hogging your bandwidth.

Once you've got a recent access log for your Website, you can write a script to find who's making the most accesses.

#!/usr/bin/perl -w use strict; use warnings; # Get the IP number from each line... while (<$INFILE>) { chomp; my $inline=$_; /(\d+.\d+.\d+.\d+)\s(.*)/; print $LOG "$1\n"; # . . . } # . . . # Create list of accesses, most frequent first. while(<$LOG>) { chomp; my $line=$_; $seen{$line}++; } # . . . foreach my $seenval ( sort {$seen{$b} <=> $seen{$a} } keys %seen) +{ next unless $seenval; print $FREQ "$seenval\t$seen{$seenval}\n"; }

This will help you see who's visiting most frequently. That's not quite the same as finding who's hogging the most bandwidth, but it should be a good start.

In order to get bandwidth itself, you'd need to do something like first identifying the size of the file downloaded, and then changing: $seen{$line}++; to $seen{$line}+=$size; (untested)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://529630]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2024-04-18 20:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found