Kjapp og trygg hosting for Wordpress

Sperre feed?

Nutz

Med lem
Må fikle til noe selv Tonny..
Koble en "black-list" i forbindelse med external.php tror jeg ikke du vil ha noen særlig problemer med..
 

Nutz

Med lem
Fant et lite eksempel på phpgenious.com.

Block IP Address using PHP Script | php genious

Limer det inn her i tilfelle siden forsvinner en gang..

Bare å redigere denne etter eget ønske, samt utøke $deny så mye du måtte ønske..
Gi kodesnutten under f.eks navn "bastards.php"

Sette inn ganske tidlig i filen external.php

include_once "bastards.php";


PHP:
<?php

$deny = array("111.111.111", "222.222.222", "333.333.333");

if (in_array ($_SERVER['REMOTE_ADDR'], $deny))

{

header("location: http://www.google.com/");

exit();
}

?>
Verre trenger det ikke å være..
 
Sist redigert:
Smekka sammen en greie kjapt og gæli Tony.
Litt usikker på referer funksjonen, men prøv :)

Blacklist for IP, Land og Referer

PHP:
<?php
 ///
 // BLACKLISTS
    $BadIps       = array('127.0.0.1');
    $BadSites     = array('');
    $BadCountry   = array('NORWAY');
    
    
function WiewerCountry($IP) {
  if(ip2long($IP)== -1 || ip2long($IP) === false) { die('Ugyldig IP');  }  
 
  $ipDetaljer     = array(); 
  $ipXML          = file_get_contents("http://api.hostip.info/?ip=".$IP);
  // Finn landet IP er registrert
    preg_match("@<countryName>(.*?)</countryName>@si",$ipXML,$matches);
    $ipDetaljer['country']  = $matches[1];
  // Finn countrycode til landet IP er registrert
    preg_match("@<countryAbbrev>(.*?)</countryAbbrev>@si",$ipXML,$cc_match);
    $ipDetaljer['country_code']=$cc_match[1]; 
return $ipDetaljer;
}

  $Wip        = $_SERVER['REMOTE_ADDR'];
  $Wcountry   = WiewerCountry($Wip);

///
// IP stammer fra blacklistet land
if(in_array($Wcountry['country'], $BadCountry)) {
      // ANGI HANDLING FOR LESERE FRA BLACKLISTEDE LAND
        die('Flytt til et annet land!');
}
  ///
  // IP ligger i Blacklist.
  elseif(in_array($_SERVER['REMOTE_ADDR'], $BadIps)) {
        // ANGI HANDLING FOR BRUKERE MED BLOKKERTE IP ADRESSER
          die('Gå vekk!');
  }
    ///
    // Referer nettside ligger i Blacklist
    elseif(isset($_SERVER['HTTP_REFERER'])) {
      if(in_array(@$_SERVER['HTTP_REFERER'], $BadSites)) {
          // ANGI HANDLING FOR BRUKERE SOM KOMMER FRA NETTSTEDER I BLACKLIST
            die('Velg nettsteder du besøker med omhu');
      }
    }

///
// ALT ER OK
 else {
    echo $Wcountry['country'];
}
 
Gikk litt fort i svingene der ser jeg.
Nei den gjør ikke det. Tenkte jeg ikke på i natten.

PHP:
    ///
    // Referer nettside ligger i Blacklist
    elseif(isset($_SERVER['HTTP_REFERER'])) {
      preg_match('@^(?:http://)?([^/]+)@i', $_SERVER['HTTP_REFERER'], $Treff);
      $Host           =   $Treff[1];
      preg_match('/[^.]+\.[^.]+$/', $Host, $Treff);
      $Domene         =   $Treff[0];
      if(in_array(@$Domene, $BadSites)) {
          // ANGI HANDLING FOR BRUKERE SOM KOMMER FRA NETTSTEDER I BLACKLIST
            die('Velg nettsteder du besøker med omhu');
      }
    }
Ved å endre slik kan du skrive kun domenenavn i $BadSites arrayet. f.eks "webforumet.no"
Jeg er ikke kjent med external, men skal ta en titt på strukturen i den filen du vedla for å se om jeg blir smart på det. Gi meg noen minutter :)
 
Etter en kjapp titt på den så tror jeg det enkle er det beste.
Legg til koden i begynnelsen av filen, Fjern innhold i die() så stopper scriptet å kjøre hvis et av argumentene stemmer.

Skal sies at jeg ikke er 100% sikker på at det fungerer, men jeg tror det.
 

Nutz

Med lem
Er bare å legge det inn like etter første linje Tonny.
<?php
// Hiv det inn her..


Dersom det blir treff med $Badsites avsluttes hele scriptet..
 

picxx

Well-Known Member
Det optimale hadde jo, ved hjelp av referrer, vært å sendt ut noe helt sykt istedet for feeden.
Regner med dette skal brukes på/mot disse sidene du nevnte i en annen tråd?
 

Nutz

Med lem
hehe gi han dette "http://dubai.locanto.ae/used-cars/902/index.rss" .. Sikkert veldig relevant.. :D
 

Nutz

Med lem
Er det ikke mer reinslig å ta svina på IP?
Så at det var endel like IP-adresser for de sidene..
Men blir nok noe "krøll" når det byttes over til IPV6.
 
Topp