IP ban systeem met MYSQL

Door Stefan , 23 jaar geleden, 9.962x bekeken

Hiermee kun je IP adressen verbannen van je website.
Met admin en MYSQL.

Voeg dit toe om pagina's te beveiligen tegen ongewenste gasten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include("ipban.php");
?>


===

De SQL Code om je tabel mee aan te maken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?

CREATE TABLE `ipban` (
  `id` varchar(4) NOT NULL default '0',
  `ip` varchar(15) NOT NULL default '',
  `datum` varchar(10) NOT NULL default ''
) TYPE=MyISAM;

?>



===

Waarschijnlijk kan alles beter, dus tips enzo mogen erbij worden gezet. Onthoud wel dat dit mijn eerste script is dat ik zelf heb gemaakt, soms met wat hulp van John (t3H_J @ phphulp).

Veel succes ermee ;-)

Gesponsorde koppelingen

PHP script bestanden

  1. ip-ban-systeem-met-mysql

 

Er zijn 27 reacties op 'Ip ban systeem met mysql'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Even zoeken naar de betekenis van AUTO_INCREMENT kan geen kwaad. En wat bied dit script voor voordelen tegenover andere ip-ban systemen?

Helaas moet ik ook nog het standaard-rijtje opnoemen: Variabelen buiten quotes, strings binnen quotes, en natuurlijk fatsoenlijk insprinngen.
Willem vp
Willem vp
23 jaar geleden
 
0 +1 -0 -1
Ik zou het veld 'id' uit de tabel halen, want volgens mij biedt dat geen toegevoegde waarde. Een record kan uniek geïdentificeerd worden door het IP-adres. Op deze manier werk je in de hand dat IP-adressen meerdere keren in de database voorkomen. Dat zou hoogstens nuttig zijn als je een geschiedenis wilt bijhouden (hoe vaak is een IP-adres geblokt?) maar dat strookt weer niet met de verwijder-functie.

Ook zou ik het veld 'id' of 'ip' definieren als primary key.
Stefan
Stefan
23 jaar geleden
 
0 +1 -0 -1
@Jelmer: dat is inderdaad dus wat ik zei ;-) ik ben een nog-niet-ver-gevorderde-php'er! Sinds een maand of 2 - 3 met php bezig.

@Willem vp: Als je wil weten hoeveel ip adressen je hebt verbannen is het wel handig maar inderdaad hoeft het niet erbij.
Alfred -
Alfred -
23 jaar geleden
 
0 +1 -0 -1
Als je wil weten hoeveel IPs, heb je nog steeds niets aan het ID.
Het aantal kan je trouwens ook bepalen met een COUNT() in je query.

Verder, mooi beginsel, maar een compleet onnuttig script, aangezien mensen verbannen van websites nog steeds onmogelijk is. :)


23 jaar geleden
 
0 +1 -0 -1
Het is dat ik vandaag laat uit was, dus Jelmer heeft nu me woorden uit me mond genomen :)
Legolas
Legolas
23 jaar geleden
 
0 +1 -0 -1
@Rafael:
Wat dacht je van alles blokken behalve je eigen IP :P
Alfred -
Alfred -
23 jaar geleden
 
0 +1 -0 -1
@Legolas: Onmogelijk met bovenstaand script :)
DaeDaluz
DaeDaluz
23 jaar geleden
 
0 +1 -0 -1
Dan is een .htaccess toch een stuk makkelijker, want met het bovenstaande script pakken ze 1 van de miljoenen http proxies en ze zijn weer terug :)
Eric Cartman
Eric Cartman
23 jaar geleden
 
0 +1 -0 -1
[qoute]
@Legolas: Onmogelijk met bovenstaand script :)
[/quote]

Inderdaad, dan kan je beter zoiets doen (stuk korter)...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$ip
= "127.0.0.1"; // Vul hier je IP in
if ($_SERVER['REMOTE_ADDR'] == $ip) {
  echo "Je pagina komt hier";
}

else {
  die('Je hebt geen toegan tot deze pagina');
}

?>
Alfred -
Alfred -
23 jaar geleden
 
0 +1 -0 -1
Quote:
Inderdaad, dan kan je beter zoiets doen (stuk korter)...


Zal nooit veilig zijn, IPs kan je spoofen :)
Eric Cartman
Eric Cartman
23 jaar geleden
 
0 +1 -0 -1
spoofen..?
Alfred -
Alfred -
23 jaar geleden
 
0 +1 -0 -1
Vervalsen ? :) Vraag me niet hoe, maar dit schijnt mogelijk te zijn :)
Kees Schepers
kees Schepers
23 jaar geleden
 
0 +1 -0 -1
ja of het mac adres van je netwerk kaart aanpassen :P

Maar inderdaad, helaas is dit script niet echt zinvol, i.v.m. proxy's. Ook mag je wel een beetje aandacht besteden aan je code style (syntax etc)

Bekijk ook naamgeving van je variabelen :)
Eric Cartman
Eric Cartman
23 jaar geleden
 
0 +1 -0 -1
Dan zou je het nog veiliger kunnen maken door er een vraag (of password of iets dergelijks) te laten invullen die alleen jij weet

<form action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF']; ?>
" method="post">
<p>Hier je vraag.</p>
<p>Antwoord: <input type="text" name="antwoord" /></p>
<input type="submit" name="submit" value="ok" />
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$ip
= "127.0.0.1"; // Vul hier je IP in
$antwoord = "boe";

if ($_SERVER['REMOTE_ADDR'] == $ip && $_POST['antwoord'] == $antwoord) {
  echo "Je pagina komt hier";
}

else {
  die('Je hebt geen toegang tot deze pagina');
}

?>
Paul du Long
Paul du Long
23 jaar geleden
 
0 +1 -0 -1
Mooi script heb ik net nodig
Eric Cartman
Eric Cartman
23 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$id
= $result;
?>


Waar is zo'n stukje voor nodig..? Je definiëert een variabele die een variabele bevat...
Danny
Danny
23 jaar geleden
 
0 +1 -0 -1
IP spoofen kan met verschillende programmaatjes. Zo'n programma als Privoxy doet dit ook... :-)
Duiveltje
duiveltje
23 jaar geleden
 
0 +1 -0 -1
is het ook mogelijk om bv een host te blocken? bv: 3d4h52f4d.access.telenet.be ? hoe wordt dat dan gedaan?

het bovenstaande voorbeeld is maar een verzinsel en bestaat wss niet.
mvg,
duiveltje
Niels van de Poll
Niels van de Poll
21 jaar geleden
 
0 +1 -0 -1
if( in_array( $_SERVER[REMOTE_ADDR], $ips )){

Dit is fout zegt IE7...
Wim Mari
Wim Mari
21 jaar geleden
 
0 +1 -0 -1
regel 16,17 zijn overbodig. dat gebeurd in je if-structuur reeds....

Niels: dan is IE fout! hoe kan het ook anders...
Maar even wat duidelijker, welke foutmelding geeft IE7 dan?

duiveltje: doorloop $_SERVER eens. Als het daar niet inzit vrees ik er voor!
Niels van de Poll
Niels van de Poll
21 jaar geleden
 
0 +1 -0 -1
Dit is de foutmelding: Warning: in_array() [function.in-array]: Wrong datatype for second argument in /****/*****/*******/crdesign.nl/public_html/admin/ipban.php on line 21
Jasper
jasper
21 jaar geleden
 
0 +1 -0 -1
verander lijn 19 is in:
$select = "SELECT * FROM ipban";
Mitch
Mitch
21 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
Notice: Use of undefined constant REMOTE_ADDR - assumed 'REMOTE_ADDR' in /***/.nl/www/***/ipban.php on line 19

Notice: Undefined variable: ips in /***/l.nl/www/***/ipban.php on line 19

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /***/.nl/www/***/ipban.php on line 19


Word tijd dat je hem gaat un buggen,
Ben nu al een paar uur bezig met de oplossing via de forum.
Martijn B
Martijn B
21 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if( in_array( $_SERVER[REMOTE_ADDR], $ips )){


word:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if( in_array( $_SERVER['REMOTE_ADDR'], $ips )){
Niek Kasius
Niek Kasius
20 jaar geleden
 
0 +1 -0 -1
hij geeft een fout ip data type aan in ipban.php op regel 25
als er geen ip-adres in staat. dus heb ik maar 000.000.0.0 want anders blijft die melding zichtbaar in de pagina waar die ipban in staat.
want ik mag toch aannemen dat dat adres niet bestaat, hoop ik
Cas wolters
cas wolters
19 jaar geleden
 
0 +1 -0 -1
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/cas/domains/cas-wolters.nl/public_html/ipban.php on line 22

wat moet ik nu doen?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
TJVB tvb
TJVB tvb
19 jaar geleden
 
0 +1 -0 -1
Op zoek gaan naar een ander/beter script, als je even leest zie je dat het aan veel kanten rammelt

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

Inhoudsopgave

  1. ip-ban-systeem-met-mysql

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.