Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi serverstatus herausfinden (https://www.delphipraxis.net/95446-serverstatus-herausfinden.html)

Innos 6. Jul 2007 15:21


serverstatus herausfinden
 
hiho^^

ich habe da mal nur eine frage und erwarte jetzt auch net gleich irgendeine lösung...
ich will nur wissen, ob es möglich ist den serverstatus von einem Online-Spiel herauszufinden...
ich möchte erstma nur wissen ob dieser Spieleserver online ist etc.

Habt ihr vllt eine idee, wie man solche daten abfangen könnte?
also is das erstma iwie möglich?^^

vielen Dank schonma für eure antworten im vorraus :D :thumb:

mfg innos

EDIT: das spiel arbeitet aba nicht auf windows basierende codes... jedenfalls kriege ich kein Handle so einfach raus -.- wenn ich zB einen butten klicken will...

3_of_8 6. Jul 2007 15:26

Re: serverstatus herausfinden
 
Also du kannst ihn pingen, um zu sehen, ob das Ding überhaupt online ist, aber das heißt noch lange nicht, dass die Spiele-Software auch läuft. Dafür müsstest du noch versuchen, zu connecten.

Innos 6. Jul 2007 15:27

Re: serverstatus herausfinden
 
aha und wie siehts aus mit ner art "wieviel spieler grade auf dem server online sind"?^^

hoika 6. Jul 2007 15:29

Re: serverstatus herausfinden
 
Hallo,

dazu musst du wissen, wie die Server-Software kommuniziert,
z.B. über einen API, die der Hersteller anbietet.


Heiko

Innos 6. Jul 2007 15:33

Re: serverstatus herausfinden
 
also ich weiß jetzt immerhin das es möglich ist^^ habe solche serverdaten auf einer internetseite gesehn... also ob der server online ist und wieviel spieler darauf sind...
nur ich hab leider NULL ahnung bisher von solchen internet bzw server/API geschichten :oops:
ist vllt noch alles zu hoch gegriffen denn ich glaube diese API kriegt man nicht sooo schnell raus oda?

hoika 6. Jul 2007 18:14

Re: serverstatus herausfinden
 
Hallo,

dann war es wohl ene Internet-Seite des Spiele-Herstellers,
nat. kennt der seinen server.


Heiko

Innos 6. Jul 2007 22:54

Re: serverstatus herausfinden
 
mmhh das kann sein... man weiß es nicht aber es gibt auch schon programme, die diese funktion nutzen und garantiert nicht vom hersteller kommen: "einlogbots"
ein programm, das ständig die spielerzahlabfragt und wenn ein platz frei wird connected...
also ich glaube so profi hacker kA :D die können das iwie aba was solls ich will eigentlich nix in meinem programm haben, was ich net verstehe oder als cheat anerkannt werden könnte!!

Danke für eure infos :) kann ja mal sonst so die augen nach API offenhalten^^ iwann komm ich noch dahinter :zwinker:

DGL-luke 6. Jul 2007 22:55

Re: serverstatus herausfinden
 
hallo, du könntest ja z.B. mit Ethereal mitlesen, was dine Onlinespiel macht, wenn es sihc zu server connectet.

Innos 6. Jul 2007 23:02

Re: serverstatus herausfinden
 
Ethereal ist ein programm?^^
zeichnet es etwa auf, wie die IP des bestimmten servers ist und kann man damit herausfinden wie client und server kommunizieren?
wenn das so ist wäre es ein gut alternative ich google das ma :thumb:

EDIT: mhhh ok downloade des grad XD hab nur ein problem^^ wie benutz ich das... naja kann ne weile dauern bis ich da durchgestiegen bin :gruebel:

DGL-luke 6. Jul 2007 23:21

Re: serverstatus herausfinden
 
jo, is auch n bisschen kompliziert :)

das spuckt dir direkt die Packets aus, eins nach dem anderen.

Innos 6. Jul 2007 23:32

Re: serverstatus herausfinden
 
also bisher hab ich nur das problem das erst gar keine pakete angezeigt werden :D ick klicke auf "capture interfaces" und sehe auch meine 2 (eine deaktivier) netzwerkkarten ... aba keine von denen versendet oder empfängt pakete, obwohl ich im inet surfe -.-

Innos 7. Jul 2007 10:29

Re: serverstatus herausfinden
 
so ok^^ also mittels Ethereal habe ich nun (glaube ich) die IP des spieleservers ausfindig gemacht...
Jetzt bin ich grad am versuchen, diesen server anzupingen, um zu erfahren, ob er online ist :)

habe die Sufu schon einige male benutzt und folgenen code benutzt:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
icmp.host:='121.128.133.88';  
icmp.ping;
showmessage(icmp.replystatus.fromipaddress);

end;
end;

procedure TForm1.PingReply(ASender: TComponent;
  const AReplyStatus: TReplyStatus);
begin
  if (AReplyStatus.MsRoundTripTime < 50) and (AReplyStatus.FromIpAddress <> '0.0.0.0') then
  showmessage(AReplyStatus.FromIpAddress);
end;
so durch die SuFu habe ich erfahren, dass sich dafür IcmpSendEcho gut eignet... ich weiß nur gar net was überhaupt Icmp (zB bei icmp.host:='...';) bedeutet, denn es wird von delphi auch gar nicht erkannt :wall:
gibts dazu irgendeine uses, die ich noch brauche oda liegts an etwas anderem? :wiejetzt:

mfg Innos :coder2:

Apollonius 7. Jul 2007 10:33

Re: serverstatus herausfinden
 
Für den Code brauchst du Indy. Hier wird die TIdIcmpClient-Komponente genutzt.

Innos 7. Jul 2007 10:46

Re: serverstatus herausfinden
 
also diese komponente find ich net -.-
die steht selbst net in Delphi Help drin
vllt kennt ja einer irgend eine inet seite, wo indy und sowas alles erklärt wird damit ich euch nicht zu spammen muss :D

aarrgghh helft mir :lol: :dp: :dp:
^^thx

EDIT: hab grad ma indy in die Help-Datei eingegeben... diese ganzen komponenten hab ich gar nicht T_T

EDIT2: so hab grad herausgefunden :D dass man einige sachen dafür in die uses schreiben muss... dort werden aba
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdAuthentication;
NICHT erkannt... ich habe delphi 7 kA was ich machen muss

Sko 7. Jul 2007 11:01

Re: serverstatus herausfinden
 
Eine Google-Suche nach Bei Google suchendelphi indy hätte dich gleich beim zweiten Ergebnis auf die Projektseite gebracht :roll: .

Innos 7. Jul 2007 11:21

Re: serverstatus herausfinden
 
habe mir jetztr von dieser seite eine demo runtergeldaen aba selbst die geht nicht, weil er eben die TIdTCPClient-komponente und noch sone andere komponent nicht finden kann...

ich glaube langsam das liegt an meiner delphi version :roll:

EDIT: gut ok -.- bin zu doof^^ hab mir jetzt sowas runtergeladen und muss des jetzt iwo in den delphi ordner kopiern

Innos 7. Jul 2007 23:58

Re: serverstatus herausfinden
 
ja ich weiß, ich bin ABSOLUTER anfänger auf diesem gebiet :roll: :roll:

naja für all die, die auch sich die selben fragen stellen :D
hier isn link, wo man die indy-komponente runterladen kann und sich automatisch installiert :)

http://www.atozed.com/indy/plus/files.de.aspx

dann nochn link, von einem indy-tutorial, das ich noch net durchgelesen habe aba noch durcharbeiten werde :)

http://www.dsdt.info/tutorials/indy/

so :mrgreen: melde mich dann wenn ich son paar turorials durch habe :drunken:

mfg Innos

EDIT: MUHAHA^^ jetzt weiß ich langsam wovon ihr gesprochen habt :lol:

Innos 8. Jul 2007 01:54

Re: serverstatus herausfinden
 
sooo^^ führe hier glaub selbst gespräche :P

also kann jetzt IPs an pingen... habe folgenen Code

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
IdIcmpClient1.host:='127.0.0.1'; // bei meinem server 121.128.133.89 geht aba net T_T
IdIcmpClient1.ping;
end;

procedure TForm1.IdIcmpClient1Reply(ASender: TComponent;
  const AReplyStatus: TReplyStatus);
  var SensorExists:Boolean;
begin
  SensorExists := AReplyStatus.ReplyStatusType = rsEcho;
  if sensorExists=true then
  showmessage('jo klappt')
  else
  showmessage('geht net');
end;
kann damit meinen router zB oda ne IP von einer inet seite anpingen...
ich will aber meinen spieleserver anpingen und der geht net T_T
über Ethereal sehe ich, dass das spiel sich nur mit EINER ip verständigt... und es besteht auch echt kein zweifel... habe IP + Port von dem server aba da kommt immer eine negative rückmeldung obwohl er online sein muss (ich zock grad drauf)

gibt es vllt server die man nicht so einfach anpingen kann? was meint ihr?
sry für 3fach post kA -.- ich mach halt fortschritte :zwinker:

Innos 8. Jul 2007 11:00

Re: serverstatus herausfinden
 
mensch leutz^^
also pingen geht net habe jetzt aba was anderes: TClientSocket

ich verbinde mich mit der IP und dem port... das klappt auch soweit :) und der server sendet mir jede menge Zahlen -.-
und in diesem code denk ich ma wird drin stehen, wieviel grade auf dem server connected sind... :bounce1:

dann gibt auch noch so eine procedure in dieser kompnente: procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);

wie kann man denn nu son paar infos rauslesen... will ja nix verändern nur informieren ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:20 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