View Single Post
Old 31st May 2008, 22:19
Chad Chad is offline
Join Date: Apr 2007
Posts: 75
Thanks: 0
Thanked 0 Times in 0 Posts
Default detect proxy visitors on site

I've Googled a few sites to get a simple script that will detect proxy users accessing your site through any proxy (anonymous or not).

I've tried a few variations in my index.php file

First, this one turned out blank on visit (direct, not through proxy)


//Create object
$def_attack = new DefensiveAttack(’’);

//Set my IP address

$XIP=new XIP();

$ip =$XIP->IP['client']; // Find the IP received by the server

$blacklist=implode(”, file(”blacklist.txt”)); // Load blacklist from the filesystem (a list of IP addresses)
if ($XIP->CheckNet($blacklist, $XIP->IP['client'])) die(”Blacklisted Proxy DETECTED<br>”) ;

// Check IP for Known open proxies. Uses SPAMCOP services to detect well-known spammers’ IP addresses
$handle = @fopen(”$ip”, “rb”);
$contents = ”;
while (!feof($handle))
$contents .= @fread($handle, 8192);
if ( preg_match(”/$ip\s*listed in \w*\.spamcop\.net/”,$contents) )
die(’IP Listed in Spamcop!’);

if ($XIP->Proxy['detected'])
die(”Proxy DETECTED<br>”) ;
//Looking for proxy. Uses the other class.
if ($def_attack->IsUseProxy())
die(”You are using proxy<br>”);

//Check referer if I do not want direct access to my site.
if (false === $def_attack->CheckReferer())
die (”Access deny. Direct access not allowed<br>”);

This one took ages to load the page direct, not through proxy

// start code

// if getenv results in something, proxy detected

if (getenv('HTTP_X_FORWARDED_FOR')) {

// otherwise no proxy detected

else {

// print the IP address on screen
echo $ip;
if (
   || $_SERVER['HTTP_VIA']
   || in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554))
   || @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 30))
    exit('Proxy detected');
I also want it to save the info to some local txt log file as well for future reference. Can someone please provide a decent method that won't affect load time, turn out blank, and even save to a log? I'd appreciate the help. Also, to be sure it does *not* block AOL members either.

I'm using PHP 5x on Apache 2.2
Talk Jesus Forums & Live Chat
[ Awesome Facts of Jesus Christ: click here ]
Reply With Quote
Sponsored Links