Benutzer-Werkzeuge

Webseiten-Werkzeuge


php_server_query_script

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

php_server_query_script [2009/10/24 14:00]
127.0.0.1 Externe Bearbeitung
— (aktuell)
Zeile 1: Zeile 1:
-====== PHP HL² Server-Query Script ====== 
-Dieses Script kann Informationen von einem HL2/CS:S-Server auslesen und anzeigen. 
-===== Funktionen ===== 
-Um nur die Informationen zu bekommen (z.B. Servername, Map usw) 
-  * Verbindung zum Server herstellen 
-  * Einen Wert zum Server schicken 
-  * Die Daten die der Server zurückschickt auffangen und auswerten 
-  * Daten ins Array laden  
-Um Spieler vom Server ab zu fragen (z.B. Playername, Frags usw.), muss eine Art "Ticket" angefordert werden. Dieses Ticket ist eine begrenzte Zeit gültig und ermöglicht es die Informationen zu bekommen. 
-  * Verbindung zum Server herstellen 
-  * Ein Ticket anfordern (Challenge) 
-  * Einen Wert zum Server schicken mit angehängten Ticket (das was wir vorher abgefragt haben) 
-  * Die Daten die der Server zurückschickt auffangen und auswerten 
-  * Daten ins Array laden  
-Serversettings sind ähnlich wie die Player, auch mit einem Ticket 
-===== PHP-Code ===== 
-Wir wollen das ganze in einer Klasse zusammenfassen, damit man es später leicht anpassen und für verschiedene Server verwenden kann. 
-Oder z.B. nur um die Serverinfo´s abfragen und auf den Rest zu verzichten. 
-<code=php>class HLServerAbfrage { 
-}</code> 
-Jetzt werden die wichtigsten Variablen deklariert und einige schon mit Werten füllen um diese Werte dann später zu unserem Gameserver zu senden: 
-<code=php>var $server_address; 
-var $ip; 
-var $port; 
-var $fp; 
-var $challenge; 
-var $serverinfo; 
-var $playerlist; 
-var $cvarlist; 
  
-var $A2S_SERVERQUERY_GETCHALLENGE = "\x57"; // challenge 
-var $A2S_INFO = "TSource Engine Query\x00"; // info 
-var $A2S_PLAYER = "\x55"; // player 
-var $A2S_RULES = "\x56"; // rules</code> 
-==== Funktionen ==== 
-=== IP und PORT aus der Serveradressen Variable zu trennen === 
-<code=php>function hlserver($server_address = 0) { 
-  list($this->ip, $this->port) = explode(":", $server_address); 
-}</code> 
-=== Verbindung zum Server aufzubauen === 
-<code=php>function connect() { 
-  $this->fp = fsockopen("udp://".$this->ip, $this->port, $errno, $errstr, 3); 
-  if (!$this->fp) { 
-    $Fehler = 1; 
-  } 
-}</code> 
-Damit wird eine und Verbindung zu dem Server hergestellt und speichern sie in der Variable "$this->fp". 
-Die Funktion ''fsockopen'' brauch dazu die beiden Variablen mit der IP und dem PORT. 
-=== Mit dem Server zu kommunizieren === 
-<code=php>function [b]send_strcmd[/b]($strcmd) { 
-  fwrite($this->fp, sprintf('%c%c%c%c%s%c', 0xFF, 0xFF, 0xFF, 0xFF, $strcmd, 0x00)); 
-}</code> 
php_server_query_script.1256385632.txt.bz2 · Zuletzt geändert: 2012/11/02 02:08 (Externe Bearbeitung)