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 [2009/11/30 19:01]
HSFighter
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 8: Zeile 8:
 Ein Script, was nur halb funktionierte und kaum eine Funktionierende Funktion hatte. Ein Script, was nur halb funktionierte und kaum eine Funktionierende Funktion hatte.
 Nach und nach haben wir beide noch Funktionen hinzugefügt, geändert und verbessert.\\ \\  Nach und nach haben wir beide noch Funktionen hinzugefügt, geändert und verbessert.\\ \\ 
- 
-Da Ich nicht mehr weiß wo ich das Original Tutorial gefunden habe, 
-bevor wir es geändert haben, 
-bitte ich den Autor der Das Grundgerüst geschrieben hat sich mal hier zu melden 
-oder mir eine PM zu schrieben wenn er das hier liest! 
  
 Hier mal ein Beispiel wie das Ergebnis ausschaut: [[http://www.server.hsfighter.net]] Hier mal ein Beispiel wie das Ergebnis ausschaut: [[http://www.server.hsfighter.net]]
Zeile 23: 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 53: 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 82: 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 101: 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 107: 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 113: 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 138: 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 220: 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 232: 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 268: 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 274: 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 280: 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 304: 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 377: 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/';
Zeile 463: Zeile 477:
 Auf dieses Tutorial darf frei Verlinkt werden.\\  Auf dieses Tutorial darf frei Verlinkt werden.\\ 
 So lange es hier im Wiki auf sourceserver.info verbleibt.\\  So lange es hier im Wiki auf sourceserver.info verbleibt.\\ 
-Wenn ihr das Tutorial oder Teile davon wo anders verwenden möchtet, bitte eine PM an [[http://sourceserver.info/memberlist.php?mode=viewprofile&u=57|HSFighter]]!+Wenn ihr das Tutorial oder Teile davon wo anders verwenden möchtet, bitte eine PM an [[http://sourceserver.info/user/57-hsfighter|HSFighter]]!
tutorial/server/php_querry_script.1259604064.txt.bz2 · Zuletzt geändert: 2009/11/30 19:01 von HSFighter