Entwickler-Ecke
Internet / Netzwerk - Alle aktiven PCs im Netzwerk anzeigen
Nano-Ware - Di 01.05.12 15:59
Titel: Alle aktiven PCs im Netzwerk anzeigen
Hey,
ich möchte gerne alle aktive (derzeit mit dem Netzwerk verbundenen) Geräte anzeigen. Dabei reicht die interne IP vollkommen aus. Kann ich diese PC dann eigentlich über die Indy TCP Komponente dann auch direkt über die interne IP ansprechen?
Danke für eure Antworten!
Narses - Di 01.05.12 22:19
Moin!
Nano-Ware hat folgendes geschrieben : |
ich möchte gerne alle aktive (derzeit mit dem Netzwerk verbundenen) Geräte anzeigen. |
Vorab: es gibt für dieses "Problem" keine einfache Lösung, jedenfalls sicher nichts, was du dir darunter vorstellen würdest (z.B. eine Funktion die man aufruft und schwupps alls PCs in eine Liste schreibt oder sowas). :nixweiss: Ja, ich weiß, hört man nicht gerne, und es gibt sicher immer wieder Leute, die sagen, das stimme nicht, aber bei Licht betrachtet sind deren "Lösungen" dann auch nur immer wieder irgend eine beliebig genaue
Näherung, aber keine
Lösung. :idea:
Du kannst z.B. alle IPs des Subnets anpingen, kriegst du eine Antwort, weißt du, dass unter dieser Adresse ein aktiver IP-Stack erreichbar ist (was aber nicht ausschließt, dass es Geräte gibt, die auch aktiv sind, aber nicht auf einen Ping antworten). Dann hast du aber auch Printerserver, Router, etc.pp. "gefunden".
Nano-Ware hat folgendes geschrieben : |
Dabei reicht die interne IP vollkommen aus. Kann ich diese PC dann eigentlich über die Indy TCP Komponente dann auch direkt über die interne IP ansprechen? |
Du möchtest doch sicher eher aktive Programminstanzen deiner Anwendung im LAN suchen, oder? ;) Dann bietet sich ein UDP-Broadcast an. Eine aktive Programminstanz kann dann darauf antworten und du kannst sicher sein, dass da ein geeigneter "Gesprächsparter" auf der anderen Seite ist. :think:
cu
Narses
Nano-Ware - Di 01.05.12 22:38
Ja, ich werde das dann wohl per TCP machen. Nur wie geh ich de einzelnen IPs durch, dass ich sicher bin, dass ich auch überall geschaut habe?
Narses - Di 01.05.12 23:13
Moin!
Nano-Ware hat folgendes geschrieben : |
Ja, ich werde das dann wohl per TCP machen. |
Vorsicht Falle: ich sprach von einem UDP-Broadcast, nicht TCP! ;)
Nano-Ware hat folgendes geschrieben : |
Nur wie geh ich de einzelnen IPs durch, dass ich sicher bin, dass ich auch überall geschaut habe? |
Was jetzt, Ping oder UDP-Paket? :nixweiss:
cu
Narses
Nano-Ware - Do 03.05.12 19:53
Das LuckiePing Programm verstehe ich nicht. Sagt mir einfach, wie ich das machen soll ich versteh nur Bahnhof. Ich möchte einfach alles aktiven PCs anzeigen lassen, auf denen meine Software läuft. Das wird doch irgendwie möglich sein oder?
jaenicke - Do 03.05.12 21:51
Das hat Narses ja schon geschrieben... Wenn du nicht weißt was UDP oder ein Broadcast ist, dann wirst du das wohl nachlesen müssen. Es macht wenig Sinn, wenn wir hier die Inhalte aus Wikipedia oder ähnlichen Seiten für dich reinkopieren...
http://de.wikipedia.org/wiki/User_Datagram_Protocol
http://de.wikipedia.org/wiki/Broadcast
Wenn du dir das angeschaut hast, dann weißt du wie es prinzipiell funktioniert. In Delphi erstellst du dann einen UDP-Server, z.B. TIdUDPServer, lauschst auf einem gewählten Port auf Daten aus dem Netzwerk, indem du OnUDPRead als Event benutzt und schickst mit der Methode Broadcast die Daten an alle anderen im Netzwerk. Soweit zur Kurzfassung...
Delphi-Laie - Fr 04.05.12 13:47
Nano-Ware hat folgendes geschrieben : |
Das LuckiePing Programm verstehe ich nicht. Sagt mir einfach, wie ich das machen soll ich versteh nur Bahnhof. |
Ich glaube kaum, daß sich dafür jemand hergeben wird. Luckie legte seinem Programm - wie fast überall - die Quelltexte bei. Frag' doch erst einmal seine Quelltexte. Auch ich hatte schon Programme nachzuvollziehen versucht, bei denen ich die Quelltexte Schritt für Schritt abarbeiten konnte - es gelang mir trotzdem nicht. Wenn Du Dich erkennbar bemühst, was man dann auch an Deinen Fragen wahrnehmen kann, weil die dann spezieller bzw. konkreter sind, wird man Dir sicher zu helfen sich bemühen. Aber lediglich in Deinem "Bahnhof" die Züge zu rangieren, ist keine konkrete Fragestellung. Dir wird nichts anderes übrigbleiben, als mit viel Fleiß Dich in etwas hineinzuarbeiten, wenn Du etwas programmieren möchtest, was wirklich Deine Arbeit ist.
Asche auf's Haupt: Natürlich übernahm auch ich schon Algorithmen und Quelltexte, die ich nicht verstand. Diese zur Zufriedenheit in seine Programme zu integrieren, ist dann aber reine Glückssache.
Nano-Ware hat folgendes geschrieben : |
Ich möchte einfach alles aktiven PCs anzeigen lassen, auf denen meine Software läuft. Das wird doch irgendwie möglich sein oder? |
Auf denen Deine Software läuft? Das ist ja noch einen Anspruch höher. Vielleicht kann man ja den Prozeßschnappschuß auch auf Ferncomputern ("remote") ausführen (lassen), aber ob das möglich ist, ist mir unbekannt. Aber der ist auch ganz leicht auszutricksen: Man muß nur den Namen der startenden Exe-Dateien verändern, und schon ist Deine Software mit ihm nicht mehr zu finden. Ergänzung: Vielleicht kann man das verhindern, indem die Software ihren eigenen (Exe-Datei-)Namen beim Start prüft und ggf. abbricht.
jaenicke - Fr 04.05.12 13:54
Delphi-Laie hat folgendes geschrieben : |
Auf denen Deine Software läuft? Das ist ja noch einen Anspruch höher. Vielleicht kann man ja den Prozeßschnappschuß auch auf Ferncomputern ("remote") ausführen (lassen), aber ob das möglich ist, ist mir unbekannt. |
Wenn man mit UDP-Broadcasts arbeitet wie vorgeschlagen, ist das gar nicht notwendig, und die Funktionalität an sich ist auf diesem Weg auch relativ einfach umsetzbar.
Delete - Fr 04.05.12 20:21
Nano-Ware hat folgendes geschrieben : |
auf denen meine Software läuft. Das wird doch irgendwie möglich sein oder? |
Na die entscheidende Information kommt ja früh. :roll: Dann ist mein Programm natürlich keine Lösung.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!