[PHP] HLDS Infos abrufen

Dieses Thema im Forum "PC & Konsolen Spiele" wurde erstellt von myth2806, 23. Januar 2008 .

Schlagworte:
  1. 23. Januar 2008
    HLDS Infos abrufen

    Heho,

    ich würd gern ein kleines PHP-Script schreiben um allgemeine Server-Infos von einem HLDS abzufragen. Ich finde da über google ne Menge Anleitungen und Dokumentationen zu dem verwendeten Protokoll aber es geht einfach nicht :/. Ich habe folgendes Screipt gebaut:

    PHP:
    function  hlds_getInfo ( $server $port $req  "infostring" ) {
        
    $link  fsockopen ( "udp://" . $server $port );
        if (!
    $link ) return - 1 ;
        
        
    fwrite ( $link sprintf ( '%c%c%c%c%s%c' 0xFF 0xFF 0xFF 0xFF $req 0x00 ));
        
    stream_set_timeout ( $link 3 );
        
    fread ( $link 24 );
        
        
    $status  socket_get_status ( $link );
        if (
    $status [ "timed_out" ]) return - 2 ;
        if (
    $status [ "unread_bytes" ] ==  0 ) return - 3 ;
        
        
    $reply  ==  "" ;
        do {
            
    $reply  .=  fread ( $link 1 );
            
    $status  socket_get_status ( $link );
        } while (
    $status [ "unread_bytes" ] !=  0 );
        
        
    fclose ( $link );
        
        return 
    $reply ;
    }
    das ist nur zum probieren (infos werden nicht geparst zB) aber schon das bricht jedes mal mit dem Rückgabewert -2 ab. Wenn ich irgendwelche anderen Scripts ausprobiere geht es auch nicht, sie bleiben alle einfach hängen. Ich probiere das ganze bei einem lokalem, über Steam runtergeladenen HLDS und bei zufällig rausgepickten Internet-Servern. Das Script kann ich zuhause (XAMPP) oder aufm Root laufen lassen: Immer Timeout.

    WTF? ;(

    greez myth
     
  2. 23. Januar 2008
    AW: HLDS Infos abrufen

    kurz überflogen:
    $temp ist nicht definiert (evt mit $status verwechselt?) => deswegen auch der abbruch mit -3
    fread([resource], 1); unsinnig, nimmt 1024 statt 1 oder mehr

    und der der übliche array access mit " mal wieder ~.~

    PHP:
    "udp://" . $server  //plöd

    //entweder
    'udp://'  $server
    //oder
    "udp:// { $server } "
     
  3. 23. Januar 2008
    AW: HLDS Infos abrufen

    Wasn an dem Array Access mit " so schlimm? Ich persönlich mach das natürlich nicht, weil ich sowieso meistens ' benutze :-\ aber will wissen.
     
  4. 23. Januar 2008
    AW: HLDS Infos abrufen

    hoppsa ja alte version in zwischenablage.

    //edited
     
  5. 23. Januar 2008
    AW: HLDS Infos abrufen

    in " " werden variablen, \r\n usw interpretiert, in ' nicht. gibt ein ganzkleinbisschen prefomance.
    außerdem gehörts zum guten ton und soweit ich weiß auch zu den pear-coding-standards
     
  6. 24. Januar 2008
    AW: HLDS Infos abrufen

    hmm schient hier keiner zu wissen

    @mods: könnte den thread bitte mal jemand zu clans & gameserver verschieben? vielleicht weiß da jemand bescheit.
     
  7. 24. Januar 2008
    AW: HLDS Infos abrufen

    naja, wenn du dir davon erfolg versprichst > moved ^^
    vllt. solltest du dann aber den text im ersten post etwas ändern
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.