Autor Beitrag
Utti
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 10.04.03 21:20 
hi,
ich suche seit geraumer zeit eine lösung für folgendes problem:
ich möchte den query tcp port von einem spiel (z.B. Battlefield 1942 von DICE / EA games), welches online läuft abfragen, um den Spielstatus zu bekommen. Der port eines solchen Servers ist meist 14567 und der query port 23000. allerdings komme ich selbst mit einem portscanner dort nicht heran und weiß auch nicht wie ich diese ports anzusprechen habe.
hat jemand eine idee wie ich an diese informationen herankomme?
Moritz M.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1672



BeitragVerfasst: Sa 26.04.03 12:38 
Also, erstmal musst du schaun mit welchem Protokoll der Port läuft, also ob TCP/IP oder IPX (als Spieleprotokoll beliebt) oder sonstwas.
Dann musst du mit dem entsprechenden Prototkoll eine Verbidnung aufbauen. Und dann musst du natürlich die richtigen Befehle kennen, um den Spielestatus abzufragen. Das wir das schwerste, denke ich mal.
Utti Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: So 27.04.03 12:28 
Titel: TCP - internet game...
TCP natürlich als internet game...
das problem ist, dass selbst ein port scanner keine daten auf dem port findet :(
und ohne das kann ich die befehle nicht erkennen...
ich hab allerdings programme die das abfragen können, ist es möglich solche daten zu sniffen?

_________________
Sommer? Cool! Dann kann ich endlich in kurzen Hosen Computer spielen!!!
Moritz M.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1672



BeitragVerfasst: So 27.04.03 16:49 
Das kann ich dir leider nicht sagen.
Utti Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 30.04.03 09:10 
Titel: Lösung!
so ich hab das problem gelöst und will hier ein bisschen allgemeines darüber posten, vielleicht braucht es ja jemand :D wer mehr haben will soll mir ne mehl schicken :)

folgendes betrifft natürlich nur battlefield1942 server:
1.) protokoll nicht wie angegeben tcp sondern udp (ethereal sniff)
2.) tudpsocket ist doof ;) mit indy gehts viel einfacher :) -> IdUDPClient
3.) der zielport (auch meist als hlsw port bezeichnet) ist im LAN 22000 im inet 23000, bei konstantem spielport 14567

wer nun noch die befehle von mir möchte und ein kleines testlisting... wie gesagt mail mir :)

_________________
Sommer? Cool! Dann kann ich endlich in kurzen Hosen Computer spielen!!!
BungeeBug
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 901



BeitragVerfasst: Mi 30.04.03 13:51 
Hi,
wär doch am einfachsten wenn dus hier schnell posten würdest ..

MfG BungeeBug
Utti Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 30.04.03 19:50 
naja ist bestimmt nicht sonderlich sinnvoll... aber hier halt der "kern":
man braucht halt ein idudpclient, in dem beispiel sinnvollerweise idudpclient1 :D dann noch ein status:string um den code abzufangen...

ausblenden Quelltext
1:
2:
IdUDPClient1.Send('\status\');
status := IdUDPClient1.ReceiveString(10000);


was rauskommt ist etwa folgendes:
"\language\German\location\1031\gamever\v1.31\gamename\bfield1942\mapId\BF1942\gameId\BF1942\version\v1.31\status\4\dedicated\1\password\0\gamemode\pause\maxplayers\16\numplayers\0\gametype\coop\mapname\El Alamein\hostport\14567\hostname\teeeest\CPU Given to AI\25%\Bot Skill\100%\CPU\1633\Vehicle Friendly Fire On Splash\100%\Soldier Friendly Fire On Splash\100%\Kickback On Splash\0%\Kickback\0%\Name Tag Distance Scope\300\Name Tag Distance\50\Auto Balance Teams\off\Free Camera\off\Bandwidth Choke Limit\0\Axis Team Ratio\1\Allied Team Ratio\1\External View\on\Allow Nose Cam\yes\Ticket Ratio\1000%\Game Start Delay\20s\Vehicle FriendlyFire\0%\SoldierFriendly Fire\0%\Spawn Delay\3s\Spawn Wave Time\50s\Number Of Rounds\999\Dedicated\yes\password\0\Time Limit\unlimited\Game Id\BF1942\Version\v1.31\teamname_1\allied\teamname_0\axis\final\\queryid\17.1"
das ganze ist ein string, also ist nur noch string manipulation gefragt... ich hoffe das sprengt jetzt hier keinen rahmen ;)

_________________
Sommer? Cool! Dann kann ich endlich in kurzen Hosen Computer spielen!!!