Benutzer-Werkzeuge

Webseiten-Werkzeuge


tutorial:server:php_querry_script

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

tutorial:server:php_querry_script [2011/02/28 19:36]
HSFighter [Danksagung und Autor]
tutorial:server:php_querry_script [2012/11/02 02:31] (aktuell)
HSFighter [Funktion für die Auswertung]
Zeile 1: Zeile 1:
-====== PHP Server-Query Script ======+====== PHP HL² Server-Query Script ======
 Das hier ist ein Tutorial für ein PHP Server-Query Script Das hier ist ein Tutorial für ein PHP Server-Query Script
 das Informationen von einem HL2/CS:S Server auslesen und anzeigen kann. das Informationen von einem HL2/CS:S Server auslesen und anzeigen kann.
Zeile 18: Zeile 18:
   * Daten ins Array laden   * Daten ins Array laden
  
-**Um Player vom Server ab zu fragen (z.B. Playername, Frags usw.), muss man eine Art "Ticket" anfordern. +**Um Player vom Server ab zu fragen (z.B. Playername, Frags usw.),  
 +muss man eine Art "Ticket" anfordern. 
 Dieses Ticket ist # eine begrenzte Zeit gültig und ermöglicht es die Informationen zu bekommen.**  Dieses Ticket ist # eine begrenzte Zeit gültig und ermöglicht es die Informationen zu bekommen.** 
-Verbindung zum Server herstellen +  * Verbindung zum Server herstellen 
   * Ein Ticket anfordern (//Challenge//)    * Ein Ticket anfordern (//Challenge//) 
   * Einen Wert zum Server schicken mit angehängten Ticket (//das was wir vorher abgefragt haben//)    * Einen Wert zum Server schicken mit angehängten Ticket (//das was wir vorher abgefragt haben//) 
Zeile 48: Zeile 49:
 var $cvarlist; var $cvarlist;
  
-var $A2S_SERVERQUERY_GETCHALLENGE = "\x57"; // challenge+var $A2S_SERVERQUERY_GETCHALLENGE = "\x55\xFF\xFF\xFF\xFF"; // challenge
 var $A2S_INFO = "TSource Engine Query\x00"; // info var $A2S_INFO = "TSource Engine Query\x00"; // info
 var $A2S_PLAYER = "\x55"; // player var $A2S_PLAYER = "\x55"; // player
Zeile 77: Zeile 78:
  
 ==== Funktion für die Auswertung ==== ==== Funktion für die Auswertung ====
-Jetzt brauchen wir Funktionen, die die Daten auswertet die uns der Server zurück schick.[/b] Man muss sich das folgendermaßen vorstellen:\\ +Jetzt brauchen wir Funktionen, die die Daten auswertet die uns der Server zurück schick. Man muss sich das folgendermaßen vorstellen:\\ 
  
 Der Server schickt uns eine Kette mit Informationen, die alle hintereinander kommen. Die müssen wir an bestimmten stellen trennen, damit wir die Informationen unterteilen können.\\  Der Server schickt uns eine Kette mit Informationen, die alle hintereinander kommen. Die müssen wir an bestimmten stellen trennen, damit wir die Informationen unterteilen können.\\ 
Zeile 96: Zeile 97:
 function get_int16() { function get_int16() {
   $unpacked = unpack('sint', fread($this->fp, 2));   $unpacked = unpack('sint', fread($this->fp, 2));
-  return $unpacked[int];+  return $unpacked["int"];
 } }
  
Zeile 102: Zeile 103:
 function get_int32() { function get_int32() {
   $unpacked = unpack('iint', fread($this->fp, 4));   $unpacked = unpack('iint', fread($this->fp, 4));
-  return $unpacked[int];+  return $unpacked["int"];
 } }
  
Zeile 108: Zeile 109:
 function get_float32() { function get_float32() {
   $unpacked = unpack('fint', fread($this->fp, 4));   $unpacked = unpack('fint', fread($this->fp, 4));
-  return $unpacked[int];+  return $unpacked["int"];
 } }
  
 // einen String vom Server holen // einen String vom Server holen
 function get_string() { function get_string() {
 +  $str = '';
   while(($char = fread($this->fp, 1)) != chr(0)) {   while(($char = fread($this->fp, 1)) != chr(0)) {
     $str .= $char;     $str .= $char;
Zeile 133: Zeile 135:
   $this->get_byte();   $this->get_byte();
   $challenge = $this->get_4();   $challenge = $this->get_4();
-  return $challenge; 
   fclose($this->fp);   fclose($this->fp);
 +  return $challenge;
 +  
 }      </code> }      </code>
 Wir benutzen unsere Verbindungsfunktionen und übergeben den Wert "//**W**//" (//**\x57**//) den wir vorher bei der Deklaration in die Variable "//**A2S_SERVERQUERY_GETCHALLENGE**//" geschrieben haben.\\  Wir benutzen unsere Verbindungsfunktionen und übergeben den Wert "//**W**//" (//**\x57**//) den wir vorher bei der Deklaration in die Variable "//**A2S_SERVERQUERY_GETCHALLENGE**//" geschrieben haben.\\ 
Zeile 215: Zeile 218:
 ===== Zusammenfassung der Klasse ===== ===== Zusammenfassung der Klasse =====
 <code=php><?php <code=php><?php
 +/**
 + * =============================================================================
 + * This class will get infos from a HL2 server over php
 + * 
 + * @author HSFighter
 + * @special thx to Chrisber
 + * @version 1.1.0
 + * @package PHP Server-Query Script
 + * @link http://sourceserver.info
 + * 
 + * @version 1.1.0: serverstatus.class.php by hsfighter $
 + * =============================================================================
 + */
 +
   class HLServerAbfrage {   class HLServerAbfrage {
  
Zeile 227: Zeile 244:
  
  
-      var $A2S_SERVERQUERY_GETCHALLENGE = "\x57"; // challenge+      var $A2S_SERVERQUERY_GETCHALLENGE = "\x55\xFF\xFF\xFF\xFF"; // challenge 
       var $A2S_INFO = "TSource Engine Query\x00"; // info       var $A2S_INFO = "TSource Engine Query\x00"; // info
       var $A2S_PLAYER = "\x55"; // player       var $A2S_PLAYER = "\x55"; // player
Zeile 263: Zeile 280:
       function get_int16() {       function get_int16() {
         $unpacked = unpack('sint', fread($this->fp, 2));         $unpacked = unpack('sint', fread($this->fp, 2));
-        return $unpacked[int];+        return $unpacked["int"];
       }       }
  
Zeile 269: Zeile 286:
       function get_int32() {       function get_int32() {
         $unpacked = unpack('iint', fread($this->fp, 4));         $unpacked = unpack('iint', fread($this->fp, 4));
-            return $unpacked[int];+            return $unpacked["int"];
       }       }
  
Zeile 275: Zeile 292:
       function get_float32() {       function get_float32() {
         $unpacked = unpack('fint', fread($this->fp, 4));         $unpacked = unpack('fint', fread($this->fp, 4));
-        return $unpacked[int];+        return $unpacked["int"];
       }       }
  
       // einen String vom Server holen       // einen String vom Server holen
       function get_string() {       function get_string() {
 +        $str = '';
         while(($char = fread($this->fp, 1)) != chr(0)) {         while(($char = fread($this->fp, 1)) != chr(0)) {
           $str .= $char;           $str .= $char;
Zeile 299: Zeile 317:
         $this->get_byte();         $this->get_byte();
         $challenge = $this->get_4();         $challenge = $this->get_4();
-        return $challenge; 
         fclose($this->fp);         fclose($this->fp);
 +        return $challenge;
 +        
       }       }
  
Zeile 372: Zeile 391:
 // Server Angaben // Server Angaben
  
-$ip = '85.131.170.95';+$ip = '176.57.137.35';
 $port = '27015'; $port = '27015';
 $mappic_path = 'http://meine-hp.de/mappics/css/'; $mappic_path = 'http://meine-hp.de/mappics/css/';
tutorial/server/php_querry_script.1298918219.txt.bz2 · Zuletzt geändert: 2011/02/28 19:36 von HSFighter