Autor Beitrag
mexx
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Di 19.12.06 08:39 
Ich suche ein Methode um alle Clients im Netzwerk zu erhalten. Ich habe da zwar schon etwas gefunden, aber da werden lediglich die NETBios-Namen zurückgeliefert. Was den Nachteil hat, das bei der Suche nur die Clients angezeigt werden, die das NETBios-Protokoll Installiert haben. So nehme ich das an.

Ich brauche aber als Broadcast-Ergebnis die IP-Adresse der im Netzwerk vorhanden Clients. Die Suche im Forum hat mich auf Beiträge gebracht, wo oft die Rede von UDB war. Aber geholfen hats mir leider nicht viel.

Danke für eure Hilfe!


Moderiert von user profile iconChristian S.: Topic aus Sonstiges (Delphi) verschoben am Mi 20.12.2006 um 13:53

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 20.12.06 14:30 
Moin!

user profile iconmexx hat folgendes geschrieben:
Ich suche ein Methode um alle Clients im Netzwerk zu erhalten.

Auf dem Level der Frage basierende Antwort: das geht nicht. ;)

Deshalb unterstelle ich mal, du meinst alle IP-Stacks in einem Subnetz. :D Aber selbst das ist keine einfache Aufgabe, da es keine passive Methode gibt, wie man sowas "auslesen" oder sowas kann. :? Deshalb bleibt nur ein aktiver Ansatz: alle möglichen Adressen im Subnetz bilden und anpingen, ggfs. in Zeitabständen wiederholen... :| Bekommst du eine Antwort, gibt es zu diesem Zeitpunkt unter dieser IP-Adresse einen Stack, der zumindest auf ICMP-Echo-Requests antwortet. ;) Ob das ein "PC" (im weitesten Sinne des Wortes) ist, ist dann wieder eine ganz andere Frage. :zwinker:

user profile iconmexx hat folgendes geschrieben:
Ich brauche aber als Broadcast-Ergebnis die IP-Adresse der im Netzwerk vorhanden Clients. Die Suche im Forum hat mich auf Beiträge gebracht, wo oft die Rede von UDB war. Aber geholfen hats mir leider nicht viel.

Du hast eventuell (noch) "interessante" Vorstellungen von Broadcasts. ;) Schau mal hier, auch wenn du das nicht programmieren willst, sollte es dir ein paar Grundlagen vermitteln, was UDP-Broadcasts überhaupt sind und wozu man sowas benutzen kann. ;)

Vorsicht Falle: UDP-Broadcasts werden normalerweise an Routern gefiltert, nahezu sicher aber an Gateways; und im Internet kannste das mal gleich ganz vergessen... :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 20.12.06 16:46 
Danke für Deine ausführliche Antwort. Vielleicht hilft es, wenn wir zunächst die Hintergründe klären.

Das Netzwerk:

- Domainnetzwerk mit ca. 60 Clients
- Laptops Anzahl unbekannt
- Printserver
- Fileserver
- Mailserver
- Backupserver
- Citrix-Server
- diverse Server für weniger wichtige Anwendungen
- Proxy
- Access Pionts

Das Netz ist gut konfiguriert, nur die Dokumentation ist nicht vorhanden. IP-Adressenkonflikte häufen sich. Protokolle wie URL-Listen sind nutzlos, wenn es keine Protokolle der IPs gibt, welcher Benutzer, wann welche IP hatte.

Um dieser Situation einhalt zu bieten, habe ich 3 Anwendungen geschrieben, die alle auf eine DB zugreifen. Die 1.Anwendung wird beim Anmelden an die Domain gestartet. Die 2. Anwendung läuft nur auf den Laptops(Aussendienst-Laptops). Beide Anwendungen tragen Daten zu dem Client in die DB ein. Die 3. Anwendung liest und wertet die Daten aus.

Die Laptops jedoch werden natürlich erst erfasst, wenn ich den Dienst darauf installiert habe. Ich wollte nun eine Möglichkeit finden, wie ich alle Client im Adressbereich von xxx.xxx.xxx.VON - xxx.xxx.xxx.BIS in Netzwerk finde. Sobald ich einen Client gefunden habe, soll die gefundene IP mit der Datenbank abgeglichen werden, um festzustellen, ob dieser Client bereits registriert wurde.

Ziel meines Projektes ist zum einem eine vollständige Liste der IP-Adressen und eine Möglichkeit festzustellen, wer an welchen Timestamp an welchen Rechner saß. Immerhin wird an anderen Stellen protokuliert, welche IP was gemacht hat.

Nun komme ich zu meiner eigentlichen Frage zurück. Wie kann ich feststellen, welcher Client am Netz teilnimmt. Printserver, Server oder Access Pionts eingeschlossen. Diese sind in der DB manuell registriert wurden. Die Lösung kann auch eine nicht Delphi-Lösung sein. Ein Ping mit einem vordefinierten Adressbereich wäre meine letzte Möglichkeit gewesen.

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 20.12.06 21:28 
Moin!

Die Laptops kommen extern ins Netz rein? Dann zieh dir doch einfach die ARP-Tabelle vom Router/Gateway. ;) Zusätzlich noch mit dem DHCP-Log abgleichen und auf Zuruf einen Subnet-Ping-Lauf, mehr geht nicht, IMHO. :|

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 20.12.06 23:08 
Ich habe mal dasselbe machen wollen. Ich habe dazu die Windows-internem Funktionen benutzt. Hier die Unit, die ich dazu benutzt habe, ich gehe mal davon aus, dass ich die nicht viel vom Original verändert habe, die funktioniert eigentlich ganz gut.
Aber ich glaube irgendwas hatte nicht dunktioniert und deshalb hatte ich wohl kleinere Änderungen vorgenommen, aber da kann ich mich nicht mehr dran erinnern (3 Jahre her...).
// EDIT:
Das hier ist wohl das Original (das zweite von oben: FindComp v.1.2):
www.torry.net/authorsmore.php?id=3358
Einloggen, um Attachments anzusehen!
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Do 21.12.06 08:52 
Leider werden mit diesen Code nicht alle Clients gefunden. Warum das so ist, kann ich nicht mit Sicherheit sagen, aber ich vermute, dass nur die Clients gefunden werden, die das NetBios-Protokol nutzen.

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.