UDP CS:CZ Gameserver Online/Offline

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • UDP CS:CZ Gameserver Online/Offline

    Hi ihr alle,

    seit einiger Zeit versuche ich nun schon ein Script zu schreiben mit dem ich einfach nur den Online/Offline Status meines CS:CZ Gameservers abfragen möchte. Es soll keine einfache Ping abfrage sein die meine Serverip abfragt sondern den wirklichen Status des Server (z.B die Anzeige 'Offline' wenn der Gameserver gecrashed ist). Zur info der Gameserver läuft auf dem selben Server wie der Webserver und es soll keine direkte Eingabe bzw. Abfrage via 'exec' o.Ä ausgeführt werden. Die Apache Einstellung läuft auf 'safe_mode On'.
    Mitlerweile habe ich alle möglichen Seiten und suchstrings gegoogelt die ich finden konnte, im Endefekt lande ich immer wieder auf den selben Seiten und komme nicht weiter.
    Selbst durch den Versuch die vorhandenen Codes von fertiggestellten Scripten zu entschlüsseln kam ich nicht wirklich weiter.

    Hier einmal mein Versuch "Kontakt" zu dem Gameserver herzustellen (der schon scheitert ^^):

    PHP-Code:
    $ip "localhost";   
    $port "27015";
    $string "\xFF\xFF\xFF\xFF\x00";
    $fp = @fsockopen("udp://$ip"$port$errno$errstr1) or die('Error '$errno .' - '$errstr); 
    //stream_set_timeout($fp, 1, 0); 
    //stream_set_blocking($fp, true); // SET TIMEOUT FOR OFFLINE SERVERS 
    if (!fwrite($fp$string)) {
    echo 
    "Keine Daten an den Server geschickt";
    }
    else {
    echo 
    "Daten an Server gesendet und...$test<br>"
    if (!(
    $buffer fread($fp4096 10))) { 
    echo 
    "...keine Antwort bekommmen!";
    var_dump($buffer);
    fclose($fp);
    }
    else {
    echo 
    "...Daten zurückbekommen...<br>"
    echo 
    $buffer;
    var_dump($buffer);
    fclose($fp);
    }
    }
    ?> 
    Auf der Seite bleibt es letztendlich auf "Daten an den Server gesendet und... -- ...keine Antwort bekommen.
    Im 'var_dumb' der Variable '$buffer' bei 'fread' wird als Ergenbniss 'string(0)' ausgegeben.

    Als weitere Info habe ich alle Ports in den 'IPTABLES' freigegeben jedoch bekommme ich bei der Abfrage mit 'nmap' die Ausgabe 'state - closed' auf dem Port 27015. Ein connect auf den Server (zum Gamen) ist möglich.

    Ich währe für jegliche Hilfe dankbar.

    Im Vorraus vielen Dank

    Denis W.

  • #2
    Hallo,

    um Daten mit möglicherweise blockierenden Sockets/Streams auszutauschen hat sich für mich socket_select/stream_select bezahlt gemacht.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Der String, den du da an den Server schickst, kommt mir etwas komisch vor. Aber es ist schon ne Weile her, das ich Gameserver abgefragt hab. Damals hatte ich für CS (nicht CZ, könnte aber ähnlich sein) folgenden (Binär-) String gesendet:

      Code:
      FF FF FF FF 54 53 6F 75 72 63 65 20 45 6E 67 69 6E 65 20 51 75 65 72 79 00
      Da musst du dir halt noch die Leerzeichen weg- und die 0x dazudenken.
      hopka.net!

      Kommentar


      • #4
        @AmicaNoctis habe jetzt mal ein script mit 'socket_select' versucht und bekomme als Antwort "Keine Verbindung..." ich teste mal noch weiter

        @Hopka vielen dank, werde es gleich mal ausprobieren.

        Kommentar

        Lädt...
        X