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
$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:
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.
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:
$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:
$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/
EDIT:
Bild hinzugefügt
EDIT2:
Download + Neues Bild wie es aussehen !könnte!