Autor Beitrag
jpriebe
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 06.03.03 21:36 
Hi,

ich habe ein Server-Programm, welches durch ein Active-X Control ein Socket erstellt. Eine SPS greift von aussen ueber Ethernet auf diesen PC zu und connected zu diesem Socket.

Nun moechte ich ein Art Monitor-Programm schreiben, welches auf dem selben PC laeuft und quasi den Datenverkehr der beiden (Active-X Control und SPS) mithoert, aber auch ggf. selbst Nachrichten an das Control sendet.

Leider kann ich keine Konfiguration im Active-X Control finden, wo man dessen Port des Sockets aendert und gar herausfinden kann.

Ein Portscan sagte mir, dass es Port 2222 ist - kann aber auch variieren.

Meine Frage ist nun - ist das ueberhaupt moeglich und wie waere ein eleganter Ansatz, dieses Problem anzugehen.

Ich benutze Delphi 6.

Ich bin fuer jeden Tipp sehr dankbar,
JPriebe
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Fr 07.03.03 19:48 
Dat jeht nicht.
Dreist wenn die Ports bekannt sind, musst du dich via Treiber in den TCP/IP Protokollstapel einhängen um überhaupt die Pakete lesen zu können.
Alternativ könnte ich mir vorstellen, das der Client nicht direkt auf das AktiveX zugreift - also dessen Dienst (Port) sondern auf einen anderen. Beispiel: Client->Port 1234->Port1234 lauert ein Dienst den Du mit Delphi geschrieben hast -> Weiterleitung der Daten an den originalen Port des ActiveX. Aber, da das ganze zwei Seiten hat, müsstest du auch den Rückkanal in der Form gestalten, was etwas kompliziert werden könnte.
Grüße
MSCH
jpriebe Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 07.03.03 19:54 
Titel: TCP/IP Monitor
Hallo und danke fuer die Hilfe.

Ich habe bereits einiges herausgefunden. Das Active-X Control ist lediglich ein Client, der auf einen fest definierten Port der SPS connected (Port 2222). Da ich nun das Port weiss, kann ich einfach meinen Monitor zwei Sockets geben, dem einen Port 2222 zuweisen und den anderen auf der SPS connecten.
Ich wuerde dem Active-X Control sagen, dass es einfach auf port 2222 localhost zugreifen soll (das ist ja mein Monitor dann) und der reicht dann einfach alles weiter.

Geht das so einfach zu realisieren?

JPriebe
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Fr 07.03.03 20:06 
Titel: Jaein
Hi,
teilweise schon, aber IP ist ein - im Gegensatz zu UDP - verbindungsorientiertes Protokoll. Also ganz einfach mal ein Beispiel:

Wenn du im Web browsen willst, fragt deine Kiste in der Regel den Port 80 des Webservers. Soweit so gut. Nun handeln die beiden einiges aus. Deine Kiste gibt den Webserver einen Port mit (>1024) auf den die Daten dann ankommen. (Der gleiche Port geht i.d.R. nicht)
In deinem Beispiel heisst es konkret, der Client greift auf Port 2222 des Servers zu, aber auf welchen Port kommen die Daten zurück ???
Ich würde mal einen Schnüffler (packetsniffer) installieren und mir die Sessions anschauen.
Grüße
MSCH
jpriebe Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 07.03.03 20:16 
Titel: TCP/IP Monitor
Hej,

ja gut Idee. Ich habe ersteinmal einen ganz einfachen Indy-Client erstellt, der auf die IP und Port der SPS connected. Das klappt auch soweit.

Warum sollten die dann einen neuen Port aushandeln, wenn doch eine Verbindung besteht?

Meine Frage ist nun hauptsaechlich, wie ich Packete, die ich irgendwie eingelesen haben, an einen anderen Port addressiert wieder wegschicken kann.
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Fr 07.03.03 20:26 
Hmmm, wie soll ichs erklären.
Ich habe hier nur Bücher und jetzt das ganze IP-Protokoll durchzuhecheln wurde den Rahmen und meine Highscores enorm in die Höhe treiben.

Stell Dir einfach vor, du schreibst einen Brief nach Amerika ans Weisse Haus. Gibst du eine Absenderadresse an kriegst du ein Autogramm von Dabbeljuh. Vergisst du deinen Absender, passiert nichts. Dein Absender ist im IP sozusagen ein anderer Port auf deinem PC.

Ich hoffe ich konnt mich einigermassen verständlich machen -bin halt kein Lehrer. 8)
Grüße
MSCH
jpriebe Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 07.03.03 20:36 
Titel: TCP/IP Monitor
Heh, ok. Wuerdest Du mir deine email adresse geben, dann koennte ich dich noch so mit ein paar Fragen loechern :-))