Er zijn 5 IP adressen verantwoordelijk voor 30% van het totale dataverkeer van mijn website en volgens de statistics hebben sommige zelfs 0 visits. Ik wil dit gaan beperken door middel van een IP-blokkade met php. Ik heb het volgende opgesteld maar dat werkt al niet eens voor mn eigen IP adres. Wat doe ik niet goed? Of zijn er andere methodes?

<?php
function CheckAccess()
{
$notallowedip = '127.0.0.1';
$ip = $_SERVER['REMOTE_ADDR'];
return ($ip != $notallowedip);
}

CheckAccess();
?>
Hi google, wat leuk om je weer te zien.
Probeer deze eens

<?
$banned[0]="xxx.xxx.xxx.xxx"; // IP in the form of "127.0.0.1" or whatever
$banned[1]="yyy.yyy.yyy.yyy";
$banned[2]="zzz.zzz.zzz.zzz";

// add as many as you wish

if (in_array($_SERVER['REMOTE_ADDR'],$banned)) header("HTTP/1.1 403 Forbidden");
?>
Jouw EXTERN ip-adres is niet 127.0.0.1
Ga naar whatsmyip.org om jouw IP te zien.

Of echo $_SERVER['REMOTE_ADDR']; eens zelf ;).

192.168.0.1 is ook geen extern adres, maar intern.

En waarom niet veel korter?

<?php
function CheckAccess()
	{
	$notallowedip = array('127.0.0.1', '192.168.0.1');
	return in_array($notallowedip, $_SERVER['REMOTE_ADDR']);
	}

?>


Shit, Daantje (met exact dezelfde code) is me voor.
Ik snap dat 127.0.0.1 niet mijn externe IP adres is. Maar dat was om lokaal te testen. Maar met mijn goede ip adres (via whatsmyip.org) doen geen van bovenstaande codes het (lokaal of extern). Ik kan zelf gewoon mijn site bekijken...
ja waarschijnlijk pakt die je ip binnen je netwerk.

Weet t niet zeker hoor ;)
kijk even wat je locale ip is (windows button>cmd>ipconfig) en pak je ip.
of bij linux terminal > ifconfig.

Het kan ook dat de functie <?php $_SERVER['REMOTE_ADDR']) ?>
niet goed ondersteund wordt
Ga eerst maar eens na waar die IP's van zijn?
Als het van Google of een andere zoekbot is, lijkt het me niet bevordelijk om in de zoekmachine te worden geindexeerd als: "Je bent verbannen"
Het zijn nederlandse IP adressen. Meer kan ik er niet van achter halen.
Het gaat om bv 82-169-211-31.ip.telfort.nl

Als ik $_SERVER['REMOTE_ADDR']; echo dan krijg ik netjes mijn 127.0.0.1 adres dus dat werkt wel. Het stoppen van de pagina daarna lukt dus niet.
Als je zeker weet welke adressen je wilt weghouden van je server, kan je ook overwegen een htaccess bestand te gebruiken.
http://www.homepage-maken.nl/htaccess/ip-adres-blokkeren.php is de eerste hit die ik tegen kom met een uitleg over hoe je dit kan doen.
hou er echter rekening mee dat het adres wat je hierboven aangeeft een adsl klant is bij telfort. als je dit adres ingeeft in je block lijst, en de router een reset krijgt, de router een nieuw IP zal ontvangen van telfort.
Je zal dus constant je htaccess aan moeten passen op de ip nummers die je wil blokkeren. ( en weer vrij moet geven )
Ja, blokkeren is misschien niet de beste optie. Maar ik kan hem toch wel een pagina laten zien dat hij contact moet opnemen en hem dan vragen waarom hij zoveel dataverkeer gebruikt? Volgens de statistieken heeft hij geen enkel view veroorzaakt maar wel 300mb dataverkeer. Daar moet je mijn site heel wat keer voor laden...
Gaat dat via Webalizer? Negeren ;)

Verder, je kan dit volgens mij kun je dit beter op serverniveau (firewall) afhandelen, want plaatjes zal hij nog wel kunnen laden..

Reageren