IP blokkade / ip bannen

Door B a s, 26 jaar geleden, 10.441x bekeken

Met dit script kun je IP adressen beheren die geen geblokkeerd zijn op jouw website.

Gebruik het volgende MySQL tabel:

CREATE TABLE `ip_blocks` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT,
`ip_adres` VARCHAR( 20 ) NOT NULL ,
`block_datum` VARCHAR( 20 ) NOT NULL ,
PRIMARY KEY ( `id` )
);

Zet op elke pagina van je website:
include("block.php");

De admin.php kun je overal neerzetten.. Wel op een plek die niet voor de hand ligt natuurlijk. Je kunt deze als je zou willen ook nog beveiligen met een login script of d.m.v. HTTP authentication.

Gesponsorde koppelingen

PHP script bestanden

  1. ip-blokkade-ip-bannen

 

Er zijn 56 reacties op 'Ip blokkade ip bannen'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
B a s
B a s
25 jaar geleden
 
0 +1 -0 -1
(geeft geen melding als je niet geblockt bent :p)


25 jaar geleden
 
0 +1 -0 -1
Kan iemand mij vertellen, hoe je de ip adressen van gebruikers achterhaald die mijn pagina bezoeken.


25 jaar geleden
 
0 +1 -0 -1
Ik snap dit dus echt niet he ik ben bezig met een site en ik kan dit moeilijk zelf in orde brengen!

Die heeft teveel text in zijn voorbeeld het ziet er echt niet uit zoals in het voorbeeld wie kan mij helpen??

[email protected] plzzzzz


25 jaar geleden
 
0 +1 -0 -1
zeer mooi script en werkt perfect.
mijn complimenten.

alleen je voorbeeld klopt niet staat te veel in ;)

keep up the good work


25 jaar geleden
 
0 +1 -0 -1
in plaats van
echo "<b>error</b><p>";
echo "Er kon geen database connectie worden gemaakt.";
exit();
had je ook gewoon
die("<b>error</b><p> Er kon geen database connectie worden gemaakt."); kunnen doen


25 jaar geleden
 
0 +1 -0 -1
HEY BAS NICE WORK, nog veel successssss


25 jaar geleden
 
0 +1 -0 -1
exit;


25 jaar geleden
 
0 +1 -0 -1
En wat als je een dynamisch IP-adres hebt?


25 jaar geleden
 
0 +1 -0 -1
ehh hoe maak ik dat shit in een mysql??
bvd


24 jaar geleden
 
0 +1 -0 -1
mooi werk lukt echt:p


24 jaar geleden
 
0 +1 -0 -1
Ik vind het erg kinderachtig dat forumbeheerders na het bannen van een user ook nog eens een IP-blokkade kunnen geven. Zodat de gebande, het slachtoffer, in eens niet meer mag lezen wat er over hem geschreven wordt.

Was dat de bedoeling van php of valt dit onder misbruik ?


24 jaar geleden
 
0 +1 -0 -1
Hier, simpele IP logger:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
$log_file
= "iplog.txt";
$ip = $REMOTE_ADDR;
$host = gethostbyaddr($REMOTE_ADDR);
$date_time = date('d-m-Y/H:i:s');
$fp = fopen("$log_file", "a");
fputs ($fp,"
($date_time) $ip ($host)
"
);
flock($fp, 3);
fclose($fp);
?>


Zorg wel dat je 'iplog.txt' erop hebt staan en ge-CHMOD naar 777 :)


24 jaar geleden
 
0 +1 -0 -1
En trouwens, een gebande kan altijd terugkomen door middel van een Proxy :-) Dus, IP Blockers hebbenniet altijd zin :P


24 jaar geleden
 
0 +1 -0 -1
Hij doet het geen eens!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


24 jaar geleden
 
0 +1 -0 -1
moet je dus alleen require("block.php"); in alle .php files zetten kan iemand me alleen vertellen waar of moet je gewoon
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?  
require("block.php");
}

?>


boven de pagina zetten?


23 jaar geleden
 
0 +1 -0 -1
schitterend scripts precies wat ik zocht bedankt
MoehMan x
MoehMan x
23 jaar geleden
 
0 +1 -0 -1
"En trouwens, een gebande kan altijd terugkomen door middel van een Proxy :-) Dus, IP Blockers hebbenniet altijd zin :P"
tenzij je een proxy banner geinstalleerd hebt ;)


23 jaar geleden
 
0 +1 -0 -1
Jammer dat het niet werkt of ik moet al iets verkeerd hebben gedaan mysql en scripts zijn erop dus!!
Christian
christian
23 jaar geleden
 
0 +1 -0 -1
hij doet het niet!
wat moet je op een pagina neer zetten zodat ze daar niet komen?


23 jaar geleden
 
0 +1 -0 -1
ik krijg hem ook nog niet werkend, hij geeft telkens, supplied argument is not valid voor de regel met mysql_num_rows? wat kan dit zijn HELP!
Maks
maks
23 jaar geleden
 
0 +1 -0 -1
@moehman

een proxy banner? bestaat dat dan tocH?? ik vind dit scriptje wel mooi maarja de meeste mensen hebben nadat ze hen pctje afzette weer een ander ip dus dan helpt dat natuurlijk geen fluit...


23 jaar geleden
 
0 +1 -0 -1
mijn oplossing was om ook een cookie mee te geven. die kun je natuurlijk ook gewoon weer verwijderen, maar het lost wel het dynamishe ip probleem op.
Sulfer
Sulfer
23 jaar geleden
 
0 +1 -0 -1
Dat van de Cookie is niet het antwoord neej.
Maar goed, er zou vast wel ooit een antwoord komen,
Bijvoorbeeld het registereren van PC namen moet toch kunnen,
dus je gaat gewoon een ip blokkeren in combinatie met PCnaam ofzo..?
Volgens mij was daar een functie voor. $_SERVER['????'];
Wie zou het weten :P

Btw. Het is een fine looking script :)
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Met javascript kon je in netscape vroeger de computernaam achterhalen. Of dat tegenwoordig kan met Gecko-based browsers, weet ik niet. Met IE kon het iig niet.
Sulfer
Sulfer
23 jaar geleden
 
0 +1 -0 -1
Dat is wel jmmr, anders had je tal van mogelijkheden.
Wat ook niet helemaal het gaval is bedenk ik me net,
want je hebt natuurlijk wel eens mensen met de zelfde Pc naam.
Ook zit je weer met het probleem dat ze ook in internet-cafés kunnen zitten
Sulfer
Sulfer
23 jaar geleden
 
0 +1 -0 -1
Ik heb er nog eens over na lopen denken, het is niet echt mogelijk om om pc naam te bannen, want je kan in 1 handomdraai je pc weer hernoemen.
Wat mss wel kan is een hostname blokken.
Zoals jullie mss weten kun je in cmd ipconfig /all doen, en dan kom je achter je eigen hostname.
Als je die blokt met het achterkomende DNS-achtervoegsel.
Dan komt die gene niet meer binnen, hij kan doen wat hij wil. maar hij komt niet meer binnen
Alleen is er 1 ding, hij hoeft dan alleen maar zijn internetaccount te verplaatsen naar andere host, maar is het dat waard ? denk het niet.
Volgens mij moet je met php wel achter de hostname kunnen komen.
Kheb ooit zoeits ergens gezien.
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Met PHP kan je niet achter het DNS-adres komen. Met Javascript ook niet. En als het wel kan via Javascript, is dat beperkt tot enkele inmiddels exotische browsers. Enige manier om erachter te komen is een Java applet of een ActiveX achtig gebeuren op de cliënt computer uitvoeren, en die zijn natuurlijk vrij gemakkelijk tegen te gaan...
Sulfer
Sulfer
23 jaar geleden
 
0 +1 -0 -1
hmm ik heb ooit met Mambo gewerkt :S. en toen zag ik ook zoiets, dus ik d8 moet ook te doen zijn, Mss kom ik er nog wel op een manier achter.
Maar goed, dat van JAVA wist ik al.
Iig bedankt..

Edit:


function is_blacklisted($ip) {
$dnsbl_check=array("bl.spamcop.net",
"relays.osirusoft.com",
"list.dsbl.org",
"sbl.spamhaus.org");
if ($ip) {
$quads=explode(".",$ip);
$rip=$quads[3].".".$quads[2].".".$quads[1].".".$quads[0];
for ($i=0; $i<count($dnsbl_check); $i++) {
if (checkdnsrr($rip.".".$dnsbl_check[$i],"A")) {
$listed.=$dnsbl_check[$i]." ";
}
}
if ($listed) { return $listed; } else { return FALSE; }
}
}

dit is toch om een DNS - hostname te blokken.. ? of zie ik dit fout
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Dat blokkeert meteen het hele DNS adres. Dus als je daar bijvoorbeeld xs4all aan toevoegt, kan niemand met een xs4all adres er meer op komen. Als je hem ook met voorvoegsel blokkeerd, krijg je hetzelfde als het blokkeren van een ip-adres. Ook een dns-adres nog eens veranderbaar. (iig dat van mij)
Sulfer
Sulfer
23 jaar geleden
 
0 +1 -0 -1
omg is er dan niks waardoor je spammers kan aanpakken ^^. de sl*tten
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Jawel. Spambots zijn geen mensen, en vertonen wel degelijk patronen waaraan je ze kan onderscheiden van echte mensen. Aan de hand daarvan kan je dan bijvoorbeeld het bericht wissen of ze eerst nog een keer om een code na te typen navragen.

En tegen menselijke spammers, van die sneue lui die niets beters te doen hebben omdat ze jaloers zijn, kan je gaan bannen met koekjes en sessies.
Wat je ook kan doen, is voor bepaalde ip-adressen niet meteen de posts die ze maken plaatsen, maar deze eerst laten controleren door een moderator.
Mark
mark
23 jaar geleden
 
0 +1 -0 -1
Gebruik het volgende MySQL tabel:

CREATE TABLE `ip_blocks` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT,
`ip_adres` VARCHAR( 20 ) NOT NULL ,
`block_datum` VARCHAR( 20 ) NOT NULL ,
PRIMARY KEY ( `id` )
);


Hij doet het niet hoe moet ik die tabellen aanmaken ??? ben niet zo goed in php


23 jaar geleden
 
0 +1 -0 -1
PHPMyAdmin
Mark
mark
23 jaar geleden
 
0 +1 -0 -1
Leuk script maar als ik hem op mijn server zet doet hij het niet ik heb de gegevens van de mijsqldatabase isgevuld en ik heb de tabel ook aangemaakt maar hij blokt me niet hoe kan dit ??

hij blokkeert mij bij het voorbeeld op php hulp wel !!!

gr mark


23 jaar geleden
 
0 +1 -0 -1
Als je een dynamisch adres hebt dan ja.,.
Alfred -
Alfred -
23 jaar geleden
 
0 +1 -0 -1
Quote:
Leuk script maar als ik hem op mijn server zet doet hij het niet ik heb de gegevens van de mijsqldatabase isgevuld en ik heb de tabel ook aangemaakt maar hij blokt me niet hoe kan dit ??

hij blokkeert mij bij het voorbeeld op php hulp wel !!!

gr mark


"Mijn server" draait op je PC zelf? Zoja, dan is je IP 127.0.0.1...
Zonee, dan is je IP verandert in de tussentijd..
Pim Vernooij
Pim Vernooij
23 jaar geleden
 
0 +1 -0 -1
Hmm... ik heb al vaker zo'n script gemaakt, nu vraag ik me af of er niets is tegen mensen met een dynamish ip... kan je niet checken op dit adres -> cd4401***.cable.wanadoo.nl (sterretjes uit veiligheid :P) met een Lookup van een ip krijg je dit, ik gok dat dit vast staat per verbinding, dus als het ip verandert, is de 'lookup' nog steeds hetzelfde...

heb echter geen idee hoe dit te achterhalen :(
Legolas
Legolas
23 jaar geleden
 
0 +1 -0 -1
gethostbyaddr() :)
- SanThe -
- SanThe -
23 jaar geleden
 
0 +1 -0 -1
Ik heb in het voorbeeld mijn ip ingevoerd, maar hij blocked niks.


23 jaar geleden
 
0 +1 -0 -1
@SanThe:
1. Je moet dan naar blocked.php gaan
2. Je moet je secundaire adres opgeven, die verkregen wordt met $_SERVER['REMOTE_ADDR'] en dus niet wat je in je LAN/Netwerkinstellingen ziet staan


23 jaar geleden
 
0 +1 -0 -1
Bijvoorbeeld:
198.169.0.4 staat in mijnnetwerkinstellingen,
maar PHP detecteert 62.251.20.148
dus hij blokt dat IP ook.
Pim Vernooij
Pim Vernooij
23 jaar geleden
 
0 +1 -0 -1
sebastiaan, dat is je interne netwerk ip... 62.251.20.148 is je internet ip, als je nu met 1 van je computers binnen het netwerk naar een website gaat waar dat ip geblokkeerd is, kan je hem op geen een van die pc's zien, omdat ze allemaal hetzelfde internet ip hebben...
Jelte
jelte
23 jaar geleden
 
0 +1 -0 -1
vette stuff.. :p ;)
Martin van Wageningen
Martin van Wageningen
23 jaar geleden
 
0 +1 -0 -1
|quote| boyan schreef op 08.05.2005 17:27
moet je dus alleen require("block.php"); in alle .php files zetten kan iemand me alleen vertellen waar of moet je gewoon
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?  
require("block.php");
}

?>


boven de pagina zetten? |End of Quote|

---------

gebruik deze code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
  { require 'block.php'; }
?>


Edit: hoe quote je hiero :S ?
Erik Rijk
Erik Rijk
23 jaar geleden
 
0 +1 -0 -1
Quote:
[/quote ]

zonder spaties.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
  { require 'block.php'; }
?>



en dit is niet de goeie manier van require gebruiken
Martin van Wageningen
Martin van Wageningen
23 jaar geleden
 
0 +1 -0 -1
Quote:
zonder spaties.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
{ require 'block.php'; }
?>



en dit is niet de goeie manier van require gebruiken


Bij mij werkt hij, wat zou jij dan voorstellen?
Jason de Ridder
Jason de Ridder
23 jaar geleden
 
0 +1 -0 -1
require('block.php');
Martin van Wageningen
Martin van Wageningen
23 jaar geleden
 
0 +1 -0 -1
Quote:
require('block.php');


werkt bij mij niet :(
Pieter Boussaer
Pieter Boussaer
22 jaar geleden
 
0 +1 -0 -1
Hey Bas,

Je ip block script is al verouderd. Er staan oude variablen in zoals: $ipadres = $REMOTE_ADDR;
moet zijn
$ipadres = $_SERVER['REMOTE_ADDR'];

enzo voort.
Kun je het eens aanpassen.

Ik gebruik het voor op men gastenboek want ik heb last van spambots op men GB.

Grtzz Pieter
B a s
B a s
22 jaar geleden
 
0 +1 -0 -1
Aangepast ;-).
Arjan Schuurman
Arjan Schuurman
22 jaar geleden
 
0 +1 -0 -1
Hij werkt niet bij mij
Gerben van Erkelens
Gerben van Erkelens
22 jaar geleden
 
0 +1 -0 -1
Jow ook bij mij werkt hij niet, ik heb hem aangepast aan mijn eigen database maar hij werkt niet echt Uber :d

Dit is mijn aangepaste code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

<?php  
 //-- zet het IP adres van de bezoeker
    $ipadres = $_SERVER['REMOTE_ADDR'];
    
    $sql = "SELECT ip_id FROM ip WHERE ip_adres = '" . $ipadres . "'";
    $res = mysql_query($sql);
    
    //-- bekijk of er een resultaat is, zo niet, doe dan niets
    if (mysql_num_rows($res) >= 1)
    {

        //-- geef de block melding
        echo "Je bent geblokkeerd op deze website.";
        exit();
    }
?>


tis maar een kleine aanpassing maar enig idee waarom het niet werkt?
PHP Newbie
PHP Newbie
22 jaar geleden
 
0 +1 -0 -1
Mijn ouders waren het zat dat ik steeds kon zien wat ze van plan waren in mijn glazen bol. Dus die hebben ze weggegooit.

Helaas voor jou zul je nu even moeten vertellen WAT er niet werkt. Krijg je een php of MySQl error of wat...
Gerben van Erkelens
Gerben van Erkelens
22 jaar geleden
 
0 +1 -0 -1
Ik krijg helemaal niks geen error of niks, als ik de verschillende dingen echo, dan kloopen deze ook. Maar hij banned de boel niet, de pagina komt gewoon tevoorschijn.

Natuurlijk heb ik achter res voor testen wel or die(mysql_error()) staan
Mathieu
Mathieu
21 jaar geleden
 
0 +1 -0 -1
Mooi script. Alleen er zit idd een fout in zodat het niet werkt:

Regel 24, block.php: $ipadres = $_SERVER['PHP_SELF'];
verander naar:
$ipadres = $_SERVER['REMOTE_ADDR'];
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Niek Kasius
Niek Kasius
20 jaar geleden
 
0 +1 -0 -1
wat is het nut van dit script? want je krijgt er "van ze lang zal ze leven" geen ip_adres mee te zien, als je ze er niet eerst zelf in zet.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. ip-blokkade-ip-bannen

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.