IP Blocker / Mask Blocker - Website X5 Helpsite

Logo Schriftzug
Logo WSX5
Newsletter anmelden
Scan QR or Download Android App

Direkt zum Seiteninhalt

IP Blocker / Mask Blocker

Scripte > Protection

Gib Hackern und Spammern keine Chance

Viele Anwender nutzen bereits einen Spamblocker und Captcha-Schutz. Um doch noch Fuß zu fassen scheuen Hacker und Spammer vor nichts zurück und treiben den Aufwand soweit, dass sie sich der Mühe unterziehen und auf der Webseite sogar Kontaktformulare etc. nutzen und den Captcha-Schutz manuell eingeben.
So bleibt nur noch die IP-Adresse desjenigen zu erfassen und den Zutritt zur Webseite komplett zu verweigern.
Es ist ein simples PHP Script, das die IP-Adresse ausliest und nebst betroffener Webseite in eine Textdatei schreibt. So kann Datum und Uhrzeit des Zugriffs in der Datei "ipblocker.txt" ermittelt werden und die zugehörige IP-Adresse bzw. IP-Adressenbereich in die PHP-Datei "ipblocker.php" ins Array eingetragen werden. Neben kompletten IP-Adressen werden auch IP-Bereiche wie '216.58.197.101-216.58.197.200' und IP-Masken '100.88.*.*' verwendet.
Hier ist die Schreibweise besonders zu beachten, die Maskierung erfolgt mit einem Hochkomma ' und die einzelnen Adressen werden mit einem einfachen Komma getrennt, bis auf den letzten Eintrag, der durch das Array-Ende abgeschlossen wird.
Wird die IP-Adresse oder der Adressbereich erkannt, erfolgt eine Umleitung auf die Blocker-Seite "ipblocker.html".
Idealer Weise sollte der PHP-Code gleich nach dem öffnenden BODY-Tag <body> eingefügt werden.
Download Button
Downloads:
ZIP-Datei in ein beliebiges Verzeichnis auf dem PC entpacken und das Verzeichnis "wsX5Obj" auf den Webserver in das Root-Verzeichnis kopieren.
HTML-Code nur in den BODY-Bereich <body>...</body> der aufrufende Datei einfügen.
Eine demo.php ist beigefügt, die zum Test in das Root-Verzeichnis des Webservers kopiert werden kann.
Aufruf: "http://www.domain.tld/demo.php". Die ausführende Datei muss die Dateiendung .php aufweisen, damit der Code ausgeführt wird.
Hier ein Array-Beispiel:
// Schreibweise genaustens beachten !!!
$ip_block = array (
'111.65.*.*',
'216.58.197.119',       
'192.168.1.100',
'192.168.1.105',
'100.88.*.*',
'122.25.100.*',
'216.58.197.101-216.58.197.200',
'98.255.255.100-98.255.255.150'
);
Als Demo können wir natürlich nur die Blocker-Seite anzeigen lassen und den IP-Log Editor in der Vorschau.
Nicht erschrecken, es ist NUR eine Demo.


(Es wird nur die Seite aufgerufen,
die der "Geblockte" angezeigt bekommt.)


(Die "Text speichern"-Button sind hier in der Demo inaktiv)

Hinweis: Wer in regelmäßigen Abständen einen Array-Listen Newsletter erhalten möchte, kann sich hier anmelden.
Diese Liste wird regelmäßig geprüft und aktualisiert, aber unter Vorbehalt der Vollständigkeit.
Code für den <BODY> Bereich
<?php include "wsX5Obj/Obj113_0/ipblocker.php"; ?>
<!-- Button zum IP Viewer ggf. in geschützte Seite einfügen -->
<button class="std_btn" onClick="window.open('wsX5Obj/Obj113_0/ipviewer.php', 'einNeuesFenster');" />
IP-Log Editor
</button>
Code Datei "ipblocker.php"
<?php
// IP-Daten erfassen
$ip = $_SERVER["REMOTE_ADDR"];
$datum = date("d.m.Y");
$zeit = date("H:i:s");
$file = basename($_SERVER["SCRIPT_NAME"]).PHP_EOL;
$log_file = fopen("wsX5Obj/Obj113_0/ipblocker.txt", a);
// Log-File schreiben
fwrite($log_file, "IP: $ip | $datum - $zeit | Webseite: $file\n");
fclose($log_file);
// IP Array: IP-Adressen, IP-Bereiche und IP-Masken möglich
$ip_block = array (
'199.249.*.*',
'188.165.*.*',
'185.78.*.*',
'185.246.*.*',
'98.255.255.100-98.255.255.150'
);
// IP-Check
if (isset($_SERVER['HTTP_CLIENT_IP'])) {
$client_ip = $_SERVER['HTTP_CLIENT_IP'];
}
else if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$client_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else if(isset($_SERVER['HTTP_X_FORWARDED'])) {
$client_ip = $_SERVER['HTTP_X_FORWARDED'];
}
else if(isset($_SERVER['HTTP_FORWARDED_FOR'])) {
$client_ip = $_SERVER['HTTP_FORWARDED_FOR'];
}
else if(isset($_SERVER['HTTP_FORWARDED'])) {
$client_ip = $_SERVER['HTTP_FORWARDED'];
}
else if(isset($_SERVER['REMOTE_ADDR'])) {
$client_ip = $_SERVER['REMOTE_ADDR'];
}
// Ausführung
$blocked = false;
foreach($ip_block as $ip) {
if($client_ip == $ip) {
$blocked = true;
break;
}
else if(strpos($ip, '*') !== false) {
$digits = explode(".", $ip);
$client_ip_digits = explode(".", $client_ip);
if($digits[1] == '*' && $digits[0] == $client_ip_digits[0]) {
$blocked = true;
break;
}
else if($digits[2] == '*' && $digits[0] == $client_ip_digits[0] && $digits[1] == $client_ip_digits[1]) {
$blocked = true;
break;
}
else if($digits[3] == '*' && $digits[0] == $client_ip_digits[0] && $digits[1] == $client_ip_digits[1] && $digits[2] == $client_ip_digits[2]) {
$blocked = true;
break;
}
}
else if(strpos($ip, "-") !== false) {
list($start_ip, $end_ip) = explode("-", $ip);
$start_ip = preg_replace('/s+/', '', $start_ip);
$end_ip = preg_replace('/s+/', '', $end_ip);
$start_ip_long = ip2long($start_ip);
$end_ip_long = ip2long($end_ip);
if($client_ip_long >= $start_ip_long && $client_ip_long <= $end_ip_long) {
$blocked = true;
break;
}
}
}
// wenn blockiert, Umleitung auf andere Seite
if($blocked == true) {
header('Location: wsX5Obj/Obj113_0/ipblocker.html');
}
?>                
My IP is:
18.234.255.5
Feedbacks zu ""

Malte H.

06.04.2020, 19:07

+1 -0  

Endlich mal etwas, was wirklich funktioniert.
Vielen Dank dafür. Malte

Bitte Dein Feedback

Du wirst als User bei Deinem ersten Kommentar automatisch registriert und musst dies noch bestätigen.
Erstellen Dir ein Konto, damit Deine Kommentare dann ohne Bestätigung veröffentlicht werden.

Login | Registrierung


            CAPTCHA
            Vielen Dank für Dein Feedback.
            Logo Host Europe
            Button Spenden

            © 2009 - 2020




            
            Besucher Statistik
            » 2 Online
            » 92 Heute
            » 111 Gestern
            » 203 Woche
            » 92 Monat
            » 58595 Jahr
            » 282801 Gesamt
            Record: 1144 (01.02.2020)
            Gesamt Downloads:
            Hosting by
            Zurück zum Seiteninhalt