Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Alle im Netzwerk befindlichen Clients scannen (https://www.delphipraxis.net/171639-alle-im-netzwerk-befindlichen-clients-scannen.html)

Gintonik 16. Nov 2012 12:08

Alle im Netzwerk befindlichen Clients scannen
 
Hallo,

ich habe ein kleines Problem und das bekomme ich irgendwie nicht gelöst.

Ich habe ein kleines Programm geschrieben, dass via FTP Dateien vom Host an einen Client überträgt.
Das funktioniert auch alles wunderbar.

Ich dachte mir nur, dass es für den Laien einfacher ist, anstatt seine eigene IP eingeben zu müssen, er Quasi den richtigen Client (seines Netzwerk) per Maus anklickt und die IP in mein Programm übernommen wird.

Ich habe auch diverse Netzwerkscanner gefunden. Diese finden allerdings nur Windows-Rechner.
Ich brauche quasi ein Script, was mir alle im LAN befindlichen Geräte (Ipad, Receiver, Xbox usw.) anzeigt, am besten auch mit dem Gerätenamen, um dann die Ergebnisse weiterzuverarbeiten.

Ich erwarte natürlich kein fertiges Script von Euch, aber vielleicht einen Hinweis, womit man sowas umsetzen kann...

Danke.

Sir Rufo 16. Nov 2012 12:13

AW: Alle im Netzwerk befindlichen Clients scannen
 
Und der Client wartet auch fröhlich darauf per FTP Daten zu bekommen?

Ich dachte immer der Client fordert per FTP Daten von einem Server an und bekommt diese dadurch geschickt?

Gintonik 16. Nov 2012 12:19

AW: Alle im Netzwerk befindlichen Clients scannen
 
Um mein kleines Programm kurz zu erkären:

Der Client soll ja von dem Scanner erfasst werden, wenn er an ist.
Wurde er jetzt vom Scanner z.B. mit der IP 192.168.2.201 erkannt, so soll der User auf den Eintrag klicken können und mein Programm übernimmt die IP.
Dann drücke ich auf senden, mein Programm wählt sich via FTP in den Client ein und schiebt die Datei auf diesen.

so gesehen ist der Client jederzeit Empangsbereit. Und der Programmteil läuft ja auch einwandfrei.

Ich suche halt nur nach einer Lösung, dass das ganze Idiotensicher wird und auch der absolute Volllaie die neue Konfiguration seines Receivers aufspielen kann, ohne das ich ihm umständlich erklären muss, wie er an die IP seines Receivers kommt.

Sir Rufo 16. Nov 2012 12:23

AW: Alle im Netzwerk befindlichen Clients scannen
 
Dann interessiert es dich aber nicht, ob das Device läuft, sondern ob das Device Daten per FTP empfangen kann.

Also musst du nur nach den Rechnern suchen, die einen bestimmten Port geöffnet haben.
z.B. mit TIdIcmpClient oder auch TIdTelnet

mjustin 16. Nov 2012 12:25

AW: Alle im Netzwerk befindlichen Clients scannen
 
Zitat:

Zitat von Gintonik (Beitrag 1191500)
Ich brauche quasi ein Script, was mir alle im LAN befindlichen Geräte (Ipad, Receiver, Xbox usw.) anzeigt, am besten auch mit dem Gerätenamen, um dann die Ergebnisse weiterzuverarbeiten.

Das geht indirekt, sofern keine Firewallrestriktionen bestehen, zum Beispiel mittels IP Multicast:

* Clients senden per UDP ihren Namen und IP Adresse ins Netz
* das Programm das den Clients Daten senden will, empfängt diese Nachrichten und weiss damit welche Clients es im Netz ansprechen kann, und kann deren Namen und IP Adressen in einer Liste darstellen

Das Problem besteht aber weiterhin, wie der Client den Transfer anstösst. Denn FTP Übertragungen werden vom Client gestartet.

Der Client muss also eine Verbindung zum Server aufbauen, über die der Server ihm mitteilt, sobald eine Datei für einen FTP Transfer bereit ist.

Daher kann man das IP Multicast auch weglassen und einfach im Server einen weiteren Port (Telnet zum Beispiel) öffnen, auf den sich der Client verbindet. Der Server kann dann über den Socket eine Nachricht an den Client senden, um den Transfer anzustossen.

Zitat:

Dann drücke ich auf senden, mein Programm wählt sich via FTP in den Client ein und schiebt die Datei auf diesen.
Mit FTP kann man Dateien nur auf einen Server schieben. Clients können Dateien nur vom Server herunterladen.

Gintonik 16. Nov 2012 12:26

AW: Alle im Netzwerk befindlichen Clients scannen
 
So kann man es natürlich auch ausdrücken.

Ich brauche quasi alle im Netzwerk befindlichen Geräte aufgelistet, die Port 21 offen haben.

Gintonik 16. Nov 2012 12:28

AW: Alle im Netzwerk befindlichen Clients scannen
 
Ich glaube, ich habe mich umständlich ausgedrückt:

Mein Programm wählt sich in den Server ein(Habe den Server fälschlicherweise als Client bezeichnet!).

mjustin 16. Nov 2012 12:32

AW: Alle im Netzwerk befindlichen Clients scannen
 
Zitat:

Zitat von Gintonik (Beitrag 1191515)
Ich glaube, ich habe mich umständlich ausgedrückt:

Mein Programm wählt sich in den Server ein(Habe den Server fälschlicherweise als Client bezeichnet!).

Dann wäre IP Multicast ein Lösungsweg. War auch kürzlich hier im Forum dargestellt:

http://www.delphipraxis.net/170850-k...-dienst-2.html

http://www.delphipraxis.net/170970-f...d-phone-2.html

Gintonik 16. Nov 2012 16:27

AW: Alle im Netzwerk befindlichen Clients scannen
 
Diese Multicast-Sache verstehe ich nicht so ganz.

Aber vielleicht habe ich mich auch total unglücklich ausgedrückt. Ich versuche den Sachverhalt nochmal neu zu äußern:

Im LAN gibt es einen Linux-FTP, an dem sich ganz normal via FTP eingewählt werden kann.
Es könnten aber auch zwei oder mehrere dieser Server im Netz sein.
Dazu kommen ja noch die Handelsüblichen Geräte (Tablet, Xbox usw...).

Ich möchte gerne ein Programm haben, der dass gesamte LAN abscannt und mir erreichbare IP-Adressen anzeigt.
Alternativ einen Scanner, der mir explizit Port 21-Geräte anzeigt.

Wenn der Scan durchgelaufen ist und ich z.B. 8 Geräte angezeigt bekomme, möchte ich dann per Mausklick die IP des gesuchten Gerätes übernehmen und damit weiterarbeiten.

mjustin 16. Nov 2012 16:53

AW: Alle im Netzwerk befindlichen Clients scannen
 
Zitat:

Zitat von Gintonik (Beitrag 1191558)
Diese Multicast-Sache verstehe ich nicht so ganz.

...

Wenn der Scan durchgelaufen ist und ich z.B. 8 Geräte angezeigt bekomme, möchte ich dann per Mausklick die IP des gesuchten Gerätes übernehmen und damit weiterarbeiten.

Bei Multicast spart man sich das Scannen, das Problem wird einfach umgedreht: anstatt alle erreichbare IP Adressen im Netz durchzunudeln (was in sicherheitsorientierten IT Umgebungen schnell dazu führt, dass ein IDS System einen Alarm auslöst), verbreitet der FTP Server seine Existenz aktiv per UDP.

Der Client, der eine Liste aller FTP Server sehen möchte, lauscht für kurze Zeit (zum Beispiel für die Dauer von drei Sekunden) auf einem UDP Port. Empfängt er während dieser Zeit den UDP Broadcast eines noch unbekannten FTP Servers, trägt er dessen IP Adresse in die Auswahlliste ein.

Nach drei Sekunden stoppt der Client dann den UDP Empfang und präsentiert die Auswahlliste der gefundenen FTP Server.

Anstatt an allen Servern einzeln "anzuklopfen" und zu fragen "kannst Du FTP?", wartet der Client einfach entspannt auf die eintreffenden Nachrichten:

* "Hier, Ich bin ein FTP Server mit der IP 1.2.3.4!"
* "Hallo, hier ist ein FTP Server mit IP 2.3.4.5"
...

Konkret habe ich das Auffinden von Apache ActiveMQ Brokern (Message Queue Server) über IP Multicast hier beschrieben:

Discover ActiveMQ brokers with Delphi and IP Multicast

Auf diesem Weg kann der Client einen Server finden, zu dem er sich anschliessend auf Port 616163 verbinden will.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:36 Uhr.
Seite 1 von 5  1 23     Letzte »    

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