Sponsor-Board.de
web rcon für cs 1.6

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Scripting (/forumdisplay.php?fid=108)
+---- Thema: web rcon für cs 1.6 (/showthread.php?tid=13885)


web rcon für cs 1.6 - Seryoga - 23.06.2011 11:38

hallo

habe hier ein css web rcon gefunden ist das möglich auf 1.6 zu machen ?

PHP-Code:
<?php 
/* 
    Basic CS:S Rcon class by Freman.  (V1.00) 
    ---------------------------------------------- 
    Ok, it's a completely working class now with with multi-packet responses 

    Contact: printf("%s%s%s%s%s%s%s%s%s%d%s%s%s","rc","on",chr(46),"cl","ass",chr(64),"pri","ya",chr(46),2,"y",chr(46),"net") 

    Behaviour I've noticed: 
    rcon is not returning the packet id. 
*/ 

define("SERVERDATA_EXECCOMMAND",2); 
define("SERVERDATA_AUTH",3); 

class 
RCon 
    var 
$Password
    var 
$Host
    var 
$Port 27032
    var 
$_Sock null
    var 
$_Id 0

    function 
RCon ($Host,$Port,$Password) { 
    
$this->Password $Password
    
$this->Host $Host
    
$this->Port $Port
    
$this->_Sock = @fsockopen($this->Host,$this->Port$errno$errstr30) or 
        die(
"Unable to open socket: $errstr ($errno)\n"); 
    
$this->_Set_Timeout($this->_Sock,2,500); 
    } 
     
    function 
Auth () { 
    
$PackID $this->_Write(SERVERDATA_AUTH,$this->Password); 
     
    
// Real response (id: -1 = failure) 
    
$ret $this->_PacketRead(); 
    if (
$ret[1]['id'] == -1) { 
        die(
"Authentication Failure\n"); 
    } 
    } 

    function 
_Set_Timeout(&$res,$s,$m=0) { 
    if (
version_compare(phpversion(),'4.3.0','<')) { 
        return 
socket_set_timeout($res,$s,$m); 
    } 
    return 
stream_set_timeout($res,$s,$m); 
    } 

    function 
_Write($cmd$s1=''$s2='') { 
    
// Get and increment the packet id 
    
$id = ++$this->_Id

    
// Put our packet together 
    
$data pack("VV",$id,$cmd).$s1.chr(0).$s2.chr(0); 

    
// Prefix the packet size 
    
$data pack("V",strlen($data)).$data

    
// Send packet 
    
fwrite($this->_Sock,$data,strlen($data)); 

    
// In case we want it later we'll return the packet id 
    
return $id
    } 

    function 
_PacketRead() { 
    
//Declare the return array 
    
$retarray = array(); 
    
//Fetch the packet size 
    
while ($size = @fread($this->_Sock,4)) { 
        
$size unpack('V1Size',$size); 
        
//Work around valve breaking the protocol 
        
if ($size["Size"] > 4096) { 
        
//pad with 8 nulls 
        
$packet "\x00\x00\x00\x00\x00\x00\x00\x00".fread($this->_Sock,4096); 
        } else { 
        
//Read the packet back 
        
$packet fread($this->_Sock,$size["Size"]); 
        } 
        
array_push($retarray,unpack("V1ID/V1Response/a*S1/a*S2",$packet)); 
    } 
    return 
$retarray
    } 

    function 
Read() { 
    
$Packets $this->_PacketRead(); 
     
    foreach(
$Packets as $pack) { 
        if (isset(
$ret[$pack['ID']])) { 
        
$ret[$pack['ID']]['S1'] .= $pack['S1']; 
        
$ret[$pack['ID']]['S2'] .= $pack['S1']; 
        } else { 
        
$ret[$pack['ID']] = array( 
                    
'Response' => $pack['Response'], 
                    
'S1' => $pack['S1'], 
                    
'S2' =>    $pack['S2'], 
                    ); 
        } 
    } 
    return 
$ret
    } 

    function 
sendCommand($Command) { 
    
$Command '"'.trim(str_replace(' ','" "'$Command)).'"'
    
$this->_Write(SERVERDATA_EXECCOMMAND,$Command,''); 
    } 

    function 
rconCommand($Command) { 
    
$this->sendcommand($Command); 

    
$ret $this->Read(); 

    
//ATM: Source servers don't return the request id, but if they fix this the code below should read as 
    // return $ret[$this->_Id]['S1']; 
    
return $ret[0]['S1']; 
    } 


$r = new rcon("meineip",meinport,"meinrconpw"); 
$r->Auth(); 

echo 
"Authenticated\n"

//Send a request 
var_dump($r->rconCommand("stats")); 

?>


gruß seryoga


RE: web rcon für cs 1.6 - Storage-Base.de - 23.06.2011 12:31

Seryoga schrieb:
habe hier ein css web rcon gefunden ist das möglich auf 1.6 zu machen ?


Klar ist das möglich.


RE: web rcon für cs 1.6 - Seryoga - 23.06.2011 13:42

kannst du vll helfen gruß seryoga


RE: web rcon für cs 1.6 - Timoo - 23.06.2011 14:46

Also diese Phprcon class ist meines Wissen nach für css ausgelegt.

Ob es für 1.6 trozdem funktioniert weiß ich nicht.

Bei mir hat es nicht so einfach funktioniert...


RE: web rcon für cs 1.6 - Seryoga - 23.06.2011 15:39

Storage-Base.de sag möglich das würde mich intressieren wie !!


RE: web rcon für cs 1.6 - Storage-Base.de - 23.06.2011 15:54

Seryoga schrieb:
Storage-Base.de sag möglich das würde mich intressieren wie !!


Wie keine Ahnung, aber möglich ist das Wink
Siehe auch: [Link: Registrierung erforderlich]
So wie ich das sehe gibt es da diverse Klassen, wieso also das Rad neu erfinden?

Ich weiß nicht was so etwas bringen soll, gibst du quit ein ist der Server meist Offline und du kannst damit nichts mehr anfangen. Meine Befehle gebe ich daher vom PHP Script via cURL an eine API Schnittstelle, welche die Befehle wiederum per SSH2 an den Server übergibt und dann dort ausgeführt werden.


RE: web rcon für cs 1.6 - Seryoga - 23.06.2011 16:58

kannst du mir vll dein vorschlag zeigen wie du das gemacht hast mit code genauer ? gruß seryoga