IP ban, ip's online toevoegen

Pagina: 1
Acties:
  • 106 views sinds 30-01-2008
  • Reageer

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 13:54

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Topicstarter
Ik ben begonnen met php omdat ik wat wilde sleutelen aan forum software. Nu heb zat er in de software die ik gebruik geen ip ban functie, dus die probeer ik er nu in te bouwen. Ik heb bij index.php en main.php het volgende toegevoegd:

PHP:
1
2
3
4
5
6
7
$ip[]="xx.xxx.xxx.xxx";   

for($i=0;$i<sizeof($ip);$i++)  
     {  
     if($ip[$i]==$REMOTE_ADDR)  
     die("<h1>Banned</h1><hr>Je bent gebanned");  
     }



Dit werkt perfect. Nu moet je alleen wel toegang hebben tot de bron om zo elke keer bij
PHP:
1
 $ip[]="xx.xxx.xxx.xxx";
een ip adres toe te voegen. Dit is niet makkelijk omdat meerdere mensen ip bans moeten kunnen maken. Nu heb ik in het admin panel al een knop erbij gemaakt voor ip ban zodat mensen die hier toegang hebben ip bans kunnen gebruiken. Nu moet ik alleen een script maken om via het admin panel een ip toe te voegen aan index.php en main.php

code:
1
2
3
4
5
6
7
8
9
10
11
<HTMl> 
 
  IP:  
  <input type="text" name="IP"> 
  <br> 
  <input type="submit" value="submit" name="submit"> 

  <input type="Reset" name="Reset"> 
</form> 

</HTML>


Ik kan gewoon niks beters bedenken met mijn kennis van html ;) en kom niet verder dan dit. Wie kan me hier mee op weg helpen.

Note:Er bestaan 2 versie's van index.php en main.php Degene waarbij het ip moet worden toegevoegd is in de main directory. Er is ook nog een main.php en index.php in de map admin (hier bevind zich het control panel). Hier zal ook het script worden toegevoegd, dus dit kan een probleem veroorzaken omdat het dan de ip adressen toevoegd aan de main/index in de map admin. Dit moet dus worden toegevoegd in de main directory

* We Are Borg leest het verhaal terug en ziet dat het een lekker ondeduidelijk verhaal is geworden 8)7 Ik heb het zo duidelijk mogelijk proberen te maken en anders kan je het ff vragen

  • MikeN
  • Registratie: April 2001
  • Laatst online: 28-08 18:39
Een eerste suggestie is misschien om in_array te gebruiken, dan ben je van die for loop af.

Verder is het misschien handig om de ip's in een aparte include te zetten en dat bestand te laten genereren door de admin pagina. Of je haalt de ip's uit een database.

Verwijderd

Je kan een (MySQL) database gebruiken om de IP nummers in op te slaan. In de pagina's die je wil afschermen kan je dan met een query die IP's ophalen en de check uitvoeren. Ook zal je een onderhoudspagina moeten bouwen om gebande IP's te kunnen bekijken, toevoegen en verwijderen.

HTH :)

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 13:54

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Topicstarter
Verwijderd schreef op 17 November 2002 @ 00:46:
Je kan een (MySQL) database gebruiken om de IP nummers in op te slaan. In de pagina's die je wil afschermen kan je dan met een query die IP's ophalen en de check uitvoeren. Ook zal je een onderhoudspagina moeten bouwen om gebande IP's te kunnen bekijken, toevoegen en verwijderen.

HTH :)
Jep, dat kan natuurlijk ook via de mysql database. Ik dacht het alleen zo te doen, en idd, die onderhoudspagina is nu juist het probleem :) Toegang is al geregeld, alleen het toevoegen, verwijderen en lijst bekijken is het probleem :)

Maar goed, er zitten toch niet echt nadelen aan deze manier i.p.v. via de database. Ik heb het al getest en het werkt goed, alleen de onderhoudspagina is het probleem.

Edit: Ik zie nu trouwens wel dat het idd veel beter via de mysql database kan dan op mijn manier |:( Ik had namelijk via de PW faq en de linkjes daarin dit script gevonden en aangepast aan mijn forum. Ik kon helaas geen goede beschrijving vinden om het met mysql database te regelen.

Nu moet ik eigelijk elke keer een bestand van de forum software aanpassen en dan werkt lang niet zo goed. Ik kan alleen geen goede ip ban script vinden voor sql database ;(

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-08 18:36
Dan moet je er zelf één schrijven door middel van: • mysql_connect()
mysql_select_db()
mysql_query() + "SELECT count(ip) FROM forum_ip_bans WHERE ip = '$ip'"
mysql_fetch_row()
• een if
header('Location: banned.html')
mysql_close().
Wat tutorials over MySQL doorlezen is dan geen overbodige luxe. ;)

Overigens ben ik van mening dat je zoiets ook in een textbestandje kan doen met de bestands-systeem functies in PHP.

  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 31-03 16:47

CyberSnooP

^^^^ schrijft --->

Ericston schreef op 17 November 2002 @ 12:26:Overigens ben ik van mening dat je zoiets ook in een textbestandje kan doen met de bestands-systeem functies in PHP.
Yep.. Je hele MySQL-Fetch routine vervang je dan door een file("banned-ip-list.txt") en met in_array check je of het huidige in het aldus verkregen lijstje voorkomt.

Het formaat van je banned-ip-list.txt is dan gewoon IP-adressen gescheiden door een newline (enter). Een admin script kan gewoon op dezelfde manier de hele lijst inlezen, die array bewerken (iets toevoegen of verwijderen) en daarna met implode("\n", $banned_ips) en wat geschrijf weer terug zetten. Heel compact en relatief snelle code (files gaan iets vlugger dan database aanroepen, tenzij je lijst met gebannede IPs echt lang wordt).

[ Voor 0% gewijzigd door CyberSnooP op 17-11-2002 12:32 . Reden: rml ]

|_____vakje______|


  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-08 18:36
My thoughts exactly. Met de laatste 2 posts moet We Are Borg wel even vooruit kunnen lijkt me. :)
Pagina: 1