AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rcon an Hl2-Server

Ein Thema von rey003 · begonnen am 11. Nov 2007 · letzter Beitrag vom 12. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von rey003
rey003

Registriert seit: 31. Aug 2005
Ort: Sachsen ;-)
46 Beiträge
 
Delphi 2006 Architect
 
#1

Rcon an Hl2-Server

  Alt 11. Nov 2007, 08:14
Hallo DPler,
ich hab mal wieder ein Problem. Dieses mal geht es um Counterstrike Source.
Eigentlich wollte ich ganz einfach mit HLSW einem Rcon an den Server zu schicken. Dies geht jedoch nicht da mein Router nicht unterstützt wird.
Also dachte ich mir dann versuch ich selber ein einfaches Programm zu schreiben.
Mit diesem Code konnte ich auch schon die groben Serverdaten abfragen.
Delphi-Quellcode:
begin
  IdUDPClient1.Active:= True;
  ActiveSleep(5);
  IdUDPClient1.Send(char(255)+char(255)+char(255)+char(255)+'TSource Engine Query'+Chr(0));
  ActiveSleep (10);
  temp:=IdUDPClient1.ReceiveString(120000); //Var. temp ist gefüllt
  IdUDPClient1.Active:= False;
  memo1.Text:= temp;
end;
Aber ich kann die Challangenumber für Rcons nicht holen.
Delphi-Quellcode:
begin
  IdUDPClient1.Active:= True;
  ActiveSleep(5);
  // get rcon challagenumber
  IdUDPClient1.Send(char(255)+char(255)+char(255)+char(255)+'challenge rcon'#10);
  ActiveSleep (10);
  temp:=IdUDPClient1.ReceiveString(120000); //Var. temp ist leer
  IdUDPClient1.Active:= False;
end;
Dh hier empfängt er einfach keinen String. Obwohl es so gehen müsste.
Die Nummer brauch ich aber um später einen Rcon zu schicken.
Das Prinzip hab ich von hier:
http://www.delphipraxis.net/internal...ct.php?t=54541

Ich habe auch im Internet gelesen und alle machen es genau so nur ich empfange nichts
Habt ihr eine Ahnung was falsch sein könnte?
Daniel S.
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Rcon an Hl2-Server

  Alt 11. Nov 2007, 10:10
warum beendest du den oberen Befehl mit Chr(0) und den unteren mit #10?
wenns oben geht, dann vllt unten auch^^.

und vllt haben die bei css gegenüber cs etwas beim rcon geändet?
Such mal im Internet nach geeigneter Dokumentation.
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von rey003
rey003

Registriert seit: 31. Aug 2005
Ort: Sachsen ;-)
46 Beiträge
 
Delphi 2006 Architect
 
#3

Re: Rcon an Hl2-Server

  Alt 11. Nov 2007, 10:54
naja ich hab das auch schon getestet -> ändert nix
ich find ja eben keine dokumentation wie man nun wirklich einen rcon sendet.
ich habe nur beispiele in php:
http://www.rootforum.de/forum/viewto...highlight=rcon
und da geht es ja auch oder irre ich mich und das unterscheidet sich doch?

Edit: oder is mein code oben nur für 1.6 server?
Daniel S.
  Mit Zitat antworten Zitat
Benutzerbild von rey003
rey003

Registriert seit: 31. Aug 2005
Ort: Sachsen ;-)
46 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Rcon an Hl2-Server

  Alt 11. Nov 2007, 11:08
ok das scheint wirklich nur bei 1.6 so zu sein. nur das untere php script versteh ich noch nicht wirklich -.-
Daniel S.
  Mit Zitat antworten Zitat
Benutzerbild von rey003
rey003

Registriert seit: 31. Aug 2005
Ort: Sachsen ;-)
46 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Rcon an Hl2-Server

  Alt 11. Nov 2007, 11:23
Code:
    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);
   echo $data;
    // Prefix the packet size
    $data = pack("V",strlen($data)).$data;
   echo "
".$data;
    // Send packet
    fwrite($this->_Sock,$data,strlen($data));

    // In case we want it later we'll return the packet id
    return $id;
    }
Was passiert hier genau? besonders das pack versteh ich nicht.

Edit: die echos sind von mir^^
Daniel S.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Rcon an Hl2-Server

  Alt 11. Nov 2007, 11:29
pack packt mehrer Elemente in einen Binärstring.
Der erste Parameter gibt das Format an.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von rey003
rey003

Registriert seit: 31. Aug 2005
Ort: Sachsen ;-)
46 Beiträge
 
Delphi 2006 Architect
 
#7

Re: Rcon an Hl2-Server

  Alt 11. Nov 2007, 11:39
joar... aber wie sieht das gegenstück für delphi aus?
Daniel S.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Rcon an Hl2-Server

  Alt 11. Nov 2007, 11:44
Die Elemente werden Stellenweise in Bytes gepackt.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von rey003
rey003

Registriert seit: 31. Aug 2005
Ort: Sachsen ;-)
46 Beiträge
 
Delphi 2006 Architect
 
#9

Re: Rcon an Hl2-Server

  Alt 11. Nov 2007, 12:04
wie meinst du das denn?
Ich hab echt lange nix mehr mit Delphi gemacht sondern nur noch php. Aber eben leichtere Sachen.
Kannst du ein kleines Beispiel machen, damit ich verstehe wie du das meinst?
Wäre dir echt dankbar...
Daniel S.
  Mit Zitat antworten Zitat
Benutzerbild von rey003
rey003

Registriert seit: 31. Aug 2005
Ort: Sachsen ;-)
46 Beiträge
 
Delphi 2006 Architect
 
#10

Re: Rcon an Hl2-Server

  Alt 11. Nov 2007, 17:02
Ach man ich weiß echt nich was ich falsch mache... -.-
Hier hab ich folgendes gefunden (Beschreibt den Aufbau der Daten die gesendet werden müssen):
http://developer.valvesoftware.com/w...otocol#Sending
Mein aktueller Code ist dieser:
Delphi-Quellcode:
var
  reqid :integer =0;

const
  SERVERDATA_EXECCOMMAND = 2;
  SERVERDATA_AUTH = 3;

function ContructPacket(id, cmdtype: integer; s1,s2:string) : string;
var
  data: TStringStream;
  packetlength: integer;
  ende: byte;
begin
 //leeres byte
  ende:= 0;
 //ContructPacket
  data := TStringStream.Create('');
  try
   //Länge festlegen
    data.Size:= 4+4+4+length(s1)+1+length(s2)+1;
   //Paketlänge errechnen (-4 da Paketlänge nicht mitgerechnet wird)
    packetlength:= data.Size-4;

    data.Position:= 0;

    data.Write(packetlength,sizeof(INTEGER));
    data.Write(id,sizeof(INTEGER));
    data.Write(cmdtype,sizeof(INTEGER));
    data.WriteString(s1);
    data.Write(ende,sizeof(byte));
    data.WriteString(s2);
    data.Write(ende,sizeof(byte));
    result:= data.DataString;
    reqid:= reqid+1;
 finally
   data.Free;
 end;
end;

procedure TForm1.Button5Click(Sender: TObject);
var
 temp: string;
begin
  //IP und Port sind fest in der Komponente eingetragen
  IdUDPClient1.Active:= True;
  IdUDPClient1.Connect;
  ActiveSleep(5); //nur sleep mit application.ProcessMessages;
  IdUDPClient1.Send(ContructPacket(reqid,SERVERDATA_AUTH,'RconPasswort',''));
  ActiveSleep(10);
  temp:= IdUDPClient1.ReceiveString(12000);
  memo1.Text:= temp; //Bleibt leer
  IdUDPClient1.Active:= false;
end;
Laut Sniffer sendet er genau die selbe Zeichenfolge wie die Console in CSS nur der beim ReqID weiß ich immer noch nicht was der bewirkt, deshalb zähl ich ihn einfach hoch..

Ich würd mich wirklich freuen wenn jemand von euch mal drüber schauen könnte!
Daniel S.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz