Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Datenverkehr an einem Port auslesen (https://www.delphipraxis.net/97209-datenverkehr-einem-port-auslesen.html)

Cabal 6. Aug 2007 22:59


Datenverkehr an einem Port auslesen
 
Hallo


Ich würde gerne den Datenverkehr, der über das Internet an einem Port beispielsweise am Port 12222 oder sonst was herrscht auslesen also vll als String in einer Memobox anzeigen lassen..


Ich hab dazu mal ein bisschen herumexperimentiert mit dem Indy TCP Client.

Hab mit den Proceduren ReadString und ReadLn was versucht, bin aber bis jetzt sehr ergebnislos gescheitert.

Dann habe ich versucht das Ziel etwas herunter zu setzen und wollte den Datenverkehr an einer bestimmten in Netstat aufgelisteten verbindung ( IP ) an einem bestimmten Port herauslesen, hat aber nicht funktioniert, bin schon beim connecten gescheitert.



Das war einer meiner Versuche:



Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
IdTCPClient1.Port := StrToInt(Edit4.Text);
IdTCPClient1.Host := Edit3.Text;
IdTCPClient1.Connect(-1);

if IdTCPClient1.Connected = true then
  begin
      Edit5.Text := 'OK';
      Memo1.Text := IdTCPClient1.ReadLn(#$A);
      end

      else
      begin
      Edit5.Text := 'PROBLEM';
      end;
  end;




end.

Bin etwas ratlos.

wäre für jede Hilfe dankbar

ErazerZ 7. Aug 2007 00:01

Re: Datenverkehr an einem Port auslesen
 
Schon was von Sniffer'n gehört?

semo 7. Aug 2007 00:02

Re: Datenverkehr an einem Port auslesen
 
ein kleines tutorial findest du hier: http://dsdt.info/tutorials/indy/
schau auch mal in die demos der indys rein.

Cabal 7. Aug 2007 00:13

Re: Datenverkehr an einem Port auslesen
 
Danke sehr kucke mir mal schnell die tutorials an und versuchs dann weiter.

Sniffer runterladen hilft mir nix wenn ich was machen will damit :-D


aber danke sehr .

Bin bisschen eingerostet hab 2005 das letzte mal was mit Delphi gemacht.

Dax 7. Aug 2007 00:15

Re: Datenverkehr an einem Port auslesen
 
Wenn dein Programm nicht auf legitime Art und Weise an die Daten kommen soll (also weder Server noch Client ist, sondern den Port "abhört"), kommst du nicht drum herum, einen Sniffer zu schreiben. Das läuft auf Filtertreiber hinaus, und sowas kannst du, wenn du Delphi benutzen willst, gleich vergessen.

Luckie 7. Aug 2007 00:27

Re: Datenverkehr an einem Port auslesen
 
Und warum verlinkst du nicht dein Crossposting im Delphi-Forum, wo dir sogar schon jemand ein ganzes Programm geschrieben hat? :roll:

http://www.delphi-forum.de/topic_Por...sen_75139.html

Cabal 7. Aug 2007 12:37

Re: Datenverkehr an einem Port auslesen
 
Hallo

Danke schonmal


Ja das Doppelposting tut mir leid, den letzten Beitrag in Delphi - Forum hab ich nicht gesehn, weil ich so das gefühl hatte, das delphi-forum.de ein wenig "ausgestorben" sei, hatte ich es hier versucht.

Werd mal mit den jetzt zur verfügung stehendem Wissen und Hilfen weiter probieren und mich melden sobald ich entweder erfolg hatte oder wieder hängen bleibe


Danke danke :-D

Cabal 9. Aug 2007 01:00

Re: Datenverkehr an einem Port auslesen
 
Ich hab mal mit dem IndyClient nach den Tutorialvorlagen gebastelt.

Mehr oder weniger habe ich eigentlich nur das eine Tutorial nachgebaut, bin nicht sicher ob das reicht?

Also ich weiss leider nicht ob diese Indy's nur zu anderen Indy's verbinden können. Ich hab mir dann den Code angekuckt und bin davon ausgegangen das der zu allem verbinden kann.
Hier mal der code:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient1.Port := StrToInt(Edit2.text);
IdTCPClient1.Host := Edit1.text;


  with IdTCPClient1 do begin
        Connect;
  try
    ListBox1.Items.Add(ReadLn)
  finally
    disconnect;
    end;

  end;
Dann habe ich einfach mal netstat ausgeführt naja und mal wahrlos eine IP und einen passenden Port rausgenommen und es versucht und bekomme immer einen Socket Error.
:wall:



Also zweites habe ich noch nach einer Hilfe von Delphi-Forum.de
folgendes gebaut:


Delphi-Quellcode:
procedure TForm1.TcpClient1connect(Sender: TObject; Socket: TCustomWinSocket);
begin
    if (CurrentClient = NIL) then begin
        currentclient := Socket;
        TcpClient1.RemoteHost := edit1.text;
        TcpClient1.RemotePort := Edit2.text;
        TcpClient1.Open;
  end
  else
    Socket.Close;
end;

 

 
procedure TForm1.ClientRead(Sender: TObject; Socket: TCustomWinSocket);
  var
    Data: String;
begin

 
Data := Socket.ReceiveText;
Memo1.Text := Data;

 
end;
Ob das funktioniert weiss ich nicht, da ich es nicht hinbekomme, die Proceduren zu starten. :gruebel:


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