![]() |
IP addressen ermittlen
Hallo,
ich habe folgendes problem. Ich hoste ein game in Warcraft 3 (wem das nihcts sagt, ein strategie-spiel). Da ich der host bin, sind alle clients über einen festen port mit mir verbunden, default port 6223. Gibt es eine möglichkeit, die IPs aller über den port 6223 verbundenen clients zu ermitteln? Danke schon mal - Ghost |
Re: IP addressen ermittlen
Ja Klar, wenn du den Server aufmachst schon.
DU musst irgendwo in deiner Serveranwendung (zumindest wenn dus mit ServerSockets machst) eine Schleife ähnlich der: For i:=0 TO ServerSocket1.Socket.ActiveConnections - 1 do begin ListBox1.Items.Add(ServerSocket1.Socket.Connection s[i].RemoteAddress);//In Listbox1 werden dann alle gesammelt end; So, oder so ähnlich, könnte das aussehen. Wenn du allerdings das fertige War Craft 3 Serverdingens nimmst wird das schon schwieriger, bis unmöglich. |
Re: IP addressen ermittlen
gibts es da ekine möglichkeit,
den port zu "scanen" oder so was? |
Re: IP addressen ermittlen
Hallo ghost007,
versuch mal netstat -h auf der command line. Grüße Klaus |
Re: IP addressen ermittlen
aha ... da kann ich aber keine funktion finden, die mir irgendwie weiterhilft -.-
|
Re: IP addressen ermittlen
Hast Du netstat schon einmal ohne einen Parameter aufgerufen?
|
Re: IP addressen ermittlen
Delphi-Quellcode:
netstat -an | find "6223"
|
Re: IP addressen ermittlen
bei mr brngt es benutzte Ports und IP Adressen,
das wolltest Du doch, doer? Grüße Klaus
Code:
C:\>netstat -n
Active Connections Proto Local Address Foreign Address State TCP 127.0.0.1:1032 127.0.0.1:1033 ESTABLISHED TCP 127.0.0.1:1033 127.0.0.1:1032 ESTABLISHED TCP 192.168.178.20:1031 213.165.64.22:110 TIME_WAIT TCP 192.168.178.20:1039 81.209.184.99:80 TIME_WAIT TCP 192.168.178.20:1049 81.209.184.99:80 CLOSE_WAIT C:\>
Code:
C:\>netstat -a
Active Connections Proto Local Address Foreign Address State TCP pc1:epmap pc1:0 LISTENING TCP pc1:microsoft-ds pc1:0 LISTENING TCP pc1:1025 pc1:0 LISTENING TCP pc1:1026 pc1:0 LISTENING TCP pc1:1029 pc1:0 LISTENING TCP pc1:1033 pc1:0 LISTENING TCP pc1:1032 pc1:0 LISTENING TCP pc1:1032 pc1:1033 ESTABLISHED TCP pc1:1033 pc1:1032 ESTABLISHED TCP pc1:http pc1:0 LISTENING TCP pc1:netbios-ssn pc1:0 LISTENING TCP pc1:netbios-ssn pc1:0 LISTENING TCP pc1:1031 pop.gmx.net:pop3 TIME_WAIT TCP pc1:1039 dd2414.kasserver.com:http TIME_WAIT UDP pc1:epmap *:* UDP pc1:371 *:* UDP pc1:microsoft-ds *:* UDP pc1:1027 *:* UDP pc1:netbios-ns *:* UDP pc1:netbios-dgm *:* UDP pc1:netbios-ns *:* UDP pc1:netbios-dgm *:* C:\> |
Re: IP addressen ermittlen
jo, so funktionierts und wie kann ich jetzt die daten aus der konsole auslesen?
Das z.b. alle IPs die über den port 6223 connected sind, in eine lisbox kommen? |
Re: IP addressen ermittlen
|
Re: IP addressen ermittlen
Hallo,
Danke hawk, aber ehrlich gesagt ist mir das zu viel arbeit .. geht das nicht kürzer? |
Re: IP addressen ermittlen
Ich dachte eigentlich an
![]()
Delphi-Quellcode:
Nach dem Aufruf stehen die gewünschten Informationen im Memo für die Weiterverarbeitung zur Verfügung.
RunConsoleApp('cmd.exe /c netstat -a', Memo1.Lines);
Gruß Hawkeye |
Re: IP addressen ermittlen
obwohl es hier schon eine Lösung gibt,
hier noch einer Alternative: ![]() Grüße Klaus |
Re: IP addressen ermittlen
Danke, so funktioniert es,
gibts es jetzt noch eine möglich keit irgendwelche infromationen über den user, des clients zu erhalten? Von dem ich die IP weiß. |
Re: IP addressen ermittlen
dazu müsstest Du wohl den Netztraffic mitsniffen
und daraus den Username filtern. Grüße Klaus |
Re: IP addressen ermittlen
aha, und wie funktioniert so was?
Gibts da vll ein tutorial oder so was? Oder ne komponente? |
Re: IP addressen ermittlen
schau Dir das mal an:
![]() oder das -> ![]() Habe damit aber keine Erfahrung. Grüße Klaus |
Re: IP addressen ermittlen
ok,danke.
Eine letzte frage hätte ich da noch, kann ich irgendwie die verbindung zu einer bestimmten IP-Addresse, eines über den port 6223 connecteten Clients, trennen? |
Re: IP addressen ermittlen
Liste der Anhänge anzeigen (Anzahl: 1)
Kannst du, wenn es sich bei der Verbindung um einen TCP/IP - Verbidung handelt. UDP wüsste ich jetzt nicht... Guck' einfach mal in diese meine Unit, das C - Original stammt von sysinternals.com
|
Re: IP addressen ermittlen
oha, hast du das auch in delphi tags?
das is ein gewirr, da kennt sich keine s** aus |
Re: IP addressen ermittlen
Zitat:
|
Re: IP addressen ermittlen
Zitat:
Du musst mit der rechten Maustaste auf "Download" klicken und dann "Speichern unter auswählen". Sonst wird das ganze im Webbroser (bei mir zumindest) ohne Zeilenumbrüche angezeigt. Also einfach die Datei wie beschrieben auf die Platte kopieren und dann in einem Editor deiner Wahl öffnen. |
Re: IP addressen ermittlen
^^ :mrgreen: so schlau war ich noch.
Aber was ist das? [EDIT]sry, hatte da was verpeilt. ne frage zu der unit, was is kRow? Das is der parameter den man bei CloseTCPConnection angeben muss. |
Re: IP addressen ermittlen
Zitat:
![]() ![]() Ich hab' dazu noch ein Beispielprogramm, nur wollte ich dir das jetzt nicht fertig vor'n Latz werfen. Guck' dir einfach mal den zweiten Link genauer an, dann kannst du auch mit meiner Unit etwas mehr anfangen... :zwinker: //Edit: Ah, ok... Zitat:
Delphi-Quellcode:
Steht aber auch so in der Unit.
_MIB_TCPROW = packed record
dwState, dwLocalAddr, dwLocalPort, dwRemoteAddr, dwRemotePort: DWORD; end; MIB_TCPROW = _MIB_TCPROW; PMIB_TCPROW = ^MIB_TCPROW; |
Re: IP addressen ermittlen
mit welchen, und wie muss ich dann die kRow mit informationen füttern?
[EDIT]Hab zwar schon viel gemacht, aber von records (das scheihnt mir einer zu sein) hab ich keine ahnung :( |
Re: IP addressen ermittlen
:roll:
Also, mit diesen beiden Funktionen
Delphi-Quellcode:
Function GetTcpTable(Table: PMIB_TCPTABLE; dwSize: PDWORD; bOrder: BOOL): DWORD; stdcall; external 'iphlpapi.dll';
Function GetUdpTable(Table: PMIB_UDPTABLE; dwSize: PDWORD; bOrder: BOOL): DWORD; stdcall; external 'iphlpapi.dll'; Bekommst du alle Verbindungen, jeweils UDP und TCP/IP. PMIB_TCPTABLE sieht so aus:
Delphi-Quellcode:
So weit kapiert? Und jetzt kannst du eine Verbindung beenden, wenn du z.B.
_MIB_TCPTABLE = packed record
dwNumEntries: DWORD; table: Array[0..0] of MIB_TCPROW; end; MIB_TCPTABLE = _MIB_TCPTABLE; PMIB_TCPTABLE = ^MIB_TCPTABLE;
Delphi-Quellcode:
das war's....
var
TCPTable: PMIB_TCPTABLE; //[...] begin //Alle TCP - Verbindungen auflisten GetTcpTable(TCPTable,SizeOf(TCPTable),True); //Wir schließen die Dritte Verbindung kRow := TCPTable.Table[2]; CloseTCPConnection(kRow); end; |
Re: IP addressen ermittlen
danke, werde mir das mal zu gemühte führen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz