Banliste auf der Webseite anzeigen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Inhalt:
    1. Was benötige ich?
    2. Das Coding
    3. Nur IP auslesen
    4. Ende


    Was benötige ich?
    - Du brauchst einen Webserver oder Webspace der die PHP erweiterung hat. Egal ob Apache, IIS oder ein anderer Server
    - Einen allow_url_fopen fähigen Server (Weiteres dazu am Ende)
    - Einen Root oder vServer auf dem dein Server läuft WICHTIG: Der Webserver muss auf dem selben Server wie der SAMP Server laufen.
    - Ein wenig Zeit
    - Ein funktionierendes Gehirn


    Das Coding


    Erstmal fangen wir an und erstellen eine *.php Datei. Der Name spielt dabei keine Rolle.
    Nachdem ihr eine *.php Datei erstellt habt öffnet ihr diese mit Notepad++ oder einem anderen Editor.


    Ihr schreibt in die Datei folgendes rein:


    PHP
    <?php
            $sampban = "C:/SA-MP/Server/samp.ban";
    	$fp = @fopen($sampban, "r") or die ("Datei IP Bans von SA-MP kann nicht gelesen werden!");
    	while($line = fgets($fp, 1024)){
    		echo "<tr><td>".$line."</td></tr>";
    	}
    	fclose($fp);
    ?>


    Nun wozu ist das jetzt alles?


    Ganz einfach:

    PHP
    $fp = @fopen($sampban, "r") or die ("Datei IP Bans von SA-MP kann nicht gelesen werden!");


    Diese Zeile öffnet die Datei $sampban das "r" bedeutet Read also Lesen. Es gibt auch noch mehr bezeichnungen aber das ist ein anderes Thema. Falls die Datei nicht geöffnet werden kann beendet das Script sich selbst und gibt den Text "Datei IP Bans von SA-MP kann nicht gelesen werden!" aus.


    PHP
    while($line = fgets($fp, 1024)){
    		echo $line;
    	}
    	fclose($fp);


    Diese Zeilen (von oben nach unten gelesen) bewirken das er die Zeilen solange liest bis es keine Zeile mehr gibt zwischen dem Code gibt er das Ergebnis aus. Das $fp steht dabei für die geöffnete Datei. Die 1024 gibt die maximale Länge der Zeile an. Diese kann also in unserem Fall maximal 1024 Bytes betragen. Das fclose schliesst dabei die SAMP.ban und hält den Speicherplatz / Arbeitsspeicher für andere dinge frei.


    Nur IP auslesen


    Ihr wollt nur das die IP ausgegeben wird? Gut fangen wir an. Anstatt dem Code oben nehmen wir nun folgenden Code:


    PHP
    $fp = @fopen($sampban, "r") or die ("Datei IP Bans von SA-MP kann nicht gelesen werden!");
    	while($line = fgets($fp, 1024)){
    		preg_match_all("/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/", $line, $str);
    		echo $str[0][0];
    	}
    	fclose($fp);


    preg_match_all bedeutet Er sucht nach *.*.*.* (* bedeutet beliebige Zahl) und Speichert es in einen Array. Das neue echo (Ausgabe) nimmt den Array 0 und in dem Array den String 0.


    Nach Wunsch von Maddin hier die Variante mit nur 4 Zeichen:


    PHP
    $fp = @fopen($sampban, "r") or die ("Datei IP Bans von SA-MP kann nicht gelesen werden!");
    	while($line = fgets($fp, 1024)){
    		preg_match_all("/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/", $line, $str);
    		echo substr($str[0][0],0,7);
    	}
    	fclose($fp);


    Ende
    Wenn ihr fragen habt Fragt sie, ich helfe euch dann so schnell ich kann. Natürlich sind Vorschläge, Anregungen und Kritik erlaubt und auch erwünscht. Ich werde in den nächsten Tagen noch ein Tutorial schreiben wie ihr die SAMP.ban auslesen könnt ohne das die Datei auf dem gleichen Server ist wie der Webserver. Dabei muss aber beachtet werden das der Webserver allow_url_fopen benötigt. Die meisten Freehoster haben dies nämlich ausgeschalten. Wenn ihr nicht wisst ob euer Hoster das erlaubt oder nicht fragt den Supporter eures Hosters, evt. könnte man es auch für euern Webspace / Webserver aktivieren lassen.


    Bild:
    (unten nur IP's)
    breadfish.de/wcf/attachment/2552/


    (Die IPs sind ausgedacht)


    EDIT:
    Bild hinzugefügt


    EDIT2:
    Download + Neues Bild wie es aussehen !könnte!

    4 Mal editiert, zuletzt von GooMan ()

  • Hat zwar jetzt nicht dierekt was damit zutun, aber ich lasse bei mir nur teile der IP anzeigen weils nicht ok find die Komplette IP öffentlich und für jeden zugänglich zu schreiben. Auch wenn die leute die gebannt wurden scheisse gebaut haben ^^
    Da ich das ganze aber eh über MySQL laufen lasse und nicht dierekt die Ban-Datei auslesen, weiss ich nicht obs da auch geht (denke aber mal schon). Wäre schön wenn du das noch alternativ dazu schreiben könntest.
    Also halt


    PHP
    $IP = explode(".", $SELECT['IP']);
    echo '<td class="num" width="100">' . $IP[0].".".$IP[1].".XX.XXX" . '</td>';


    Aber schönes tutorial, auch wenns wohl eher in den Coding bereich gehört.



    Mfg.

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Ja doch,ganz gut gemacht;)


    Schön wäre es noch wenn du eine fertige .php-Datei dazu hochladen würdest da einige sicherlich nicht wissen wie man eine .php Datei macht oder sie bearbeitet!




    Dennoch bekommste von mir 8/10*
    Weiter so!


    //Edit:
    Kann ich die samp.ban auch via FTP-Dir aufrufen lassen?:-S
    Weil mein Webserver nicht dort ist wo mein SAMP-Server ist...


    Lg
    [FoR]Hard/MultiCore

  • Ich werde in den nächsten Tagen noch ein Tutorial schreiben wie ihr die SAMP.ban auslesen könnt ohne das die Datei auf dem gleichen Server ist wie der Webserver. Dabei muss aber beachtet werden das der Webserver allow_url_fopen benötigt.


    *hust* ;) Klar geht das :D Es darf aber kein Freehoster sein^^

  • Sieht sehr schön aus nettes Tutorial auch gut erklärt alles zusammen 9/10

  • Sehr gutes Tut 10/10


    Bloss eine Frage, wie mach ich das wie bei deinem 2. Screen ?
    Das dort steht oben drüber steht von wen er gebannt wurde ?


    lg