Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > General > Member Archives
Register FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Banning Specific Referers Details »»
Banning Specific Referers
Version: , by NTLDR (Coder) NTLDR is offline
Developer Last Online: Oct 2004 Show Printable Version Email this Page

Version: Unknown Rating:
Released: 08-31-2002 Last Update: Never Installs: 0
 
No support by the author.

OK, i've been trying to make a function like checkipban(); but that checks the referring site and if listed like IP's then it shows a vB Error message, heres what I got so far, It either bans every referrer or bans no referrer :ermm:

PHP Code:
// ###################### Start checkreferrerban #######################
function checkreferrerban() {
 // checks to see if the referring site is banned
 global $enablebanning,$banreferrer,$webmasteremail,$session;

 $banreferrer = trim($banreferrer);
 if ($enablebanning==1 and $banreferrer!="") {
    // get referring sites address
    $referreraddress=getenv("$HTTP_REFERER");
    // get all banned referrers from the db
    $dbdomain=explode(" ", preg_replace("/[[:space:]]+/", " ", $banreferrer) );
    // get domain for all banned  referrers
    while (list($key,$val)=each($dbdomain)) {
    //get referring host name from URL
    preg_match("/^(http:\/\/)?([^\/]+)/i", ".$referreraddress", $matches);
    $host = $matches[2];
    //get domain name from URL
    preg_match("/[^\.\/]+\.[^\.\/]+$/",$host,$matches);
    $match=$matches[0];
    $hostdomain=explode(" ", $match);
    //check against each banned referrer in the db
    while (list($key,$val)=each($hostdomain)) {
    if (strstr(" ".$match," ".trim($val))!="") {
   eval("standarderror(\"".gettemplate("error_banref")."\");");
          } 
     }
    }
  }
} 
Its based on this fucnction:

PHP Code:
// ###################### Start checkipban #######################
function checkipban() {
  // checkes to see if the current ip address is banned
  global $enablebanning,$banip,$webmasteremail,$session;

  $banip = trim($banip);
  if ($enablebanning==1 and $banip!="") {
    $ipaddress=getenv("REMOTE_ADDR");

    $addresses=explode(" ", preg_replace("/[[:space:]]+/", " ", $banip) );
    while (list($key,$val)=each($addresses)) {
      if (strstr(" ".$ipaddress," ".trim($val))!="") {
        eval("standarderror(\"".gettemplate("error_banip")."\");");
      }
    }
  }
} 
Any help would be appriciated

Show Your Support

  • If you like to thanks you by the author -> Click Thanks to the Author
  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #2  
Old 08-31-2002, 09:15 PM
Erwin's Avatar
Erwin Erwin is offline
 
Join Date: Jan 2002
Posts: 7,604
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You can ban referrers with .htaccess already. But you probably knew that, and want a PHP version for those without .htaccess.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 12:35 PM.


Powered by vBulletin® Version 3.9.0
Copyright ©2000 - 2017, vBulletin Solutions Inc.