lokales Netzwerk - Arbeitsgruppendaten auslesen

Alle Fragen zur Netzwerkkommunikation
Antworten
mintpc
Beiträge: 124
Registriert: Mo 6. Sep 2010, 18:39
OS, Lazarus, FPC: Win 7 (L 1.6 FPC 3.0.0)
CPU-Target: Win 7
Wohnort: Mailand

lokales Netzwerk - Arbeitsgruppendaten auslesen

Beitrag von mintpc »

Hallo zusammen,

wenn man im Microsoft-Netzwerk eine Arbeitsgruppe bildet sind alle Computer dieser
Arbeitsgruppe ja irgendwie für alle in dieser Arbeitsgruppe sichtbar.

Gibt es eine Möglichkeit, Informationen (z.B. die IP-Adressen) der Arbeitsgruppencomputer
auszulesen? Die IP-Adressen der anderen muss mein Windows-System zumindest ja irgendwie
kennen, oder?

mintpc

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: lokales Netzwerk - Arbeitsgruppendaten auslesen

Beitrag von marcov »

Windows Gruppen sind Netbios, nicht TCP/IP basiert (NetBIOS kann aber über TCP/IP getunnelt werden).

FPC 2.5.1 hat ein Unit "nb30.pp" dafür, der aber auch mit 2.4.x funktionieren wird.

Das ist aber eine 1:1 Übersetzung der Windows API ohne Beispiele. Aber mit ein bisschen Suchen konnte man vielleicht einige Delphi Beispiele finden.

mintpc
Beiträge: 124
Registriert: Mo 6. Sep 2010, 18:39
OS, Lazarus, FPC: Win 7 (L 1.6 FPC 3.0.0)
CPU-Target: Win 7
Wohnort: Mailand

Re: lokales Netzwerk - Arbeitsgruppendaten auslesen

Beitrag von mintpc »

Also, wenn ich recht verstehe hab ich mit den Netzwerkkomponenten (LNET)
keine wirkliche Möglichkeit, das Netzwerk, in dem ich mich befinde, auf
benachbarte IPs zu untersuchen, d.h. zu sehen, wer sich gerade noch im
Netzwerk befindet und wer seinen Rechner gerade angeschaltet hat.

Richtig?

mintpc

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6217
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: lokales Netzwerk - Arbeitsgruppendaten auslesen

Beitrag von af0815 »

mintpc hat geschrieben:Also, wenn ich recht verstehe hab ich mit den Netzwerkkomponenten (LNET)
keine wirkliche Möglichkeit, das Netzwerk, in dem ich mich befinde, auf
benachbarte IPs zu untersuchen, d.h. zu sehen, wer sich gerade noch im
Netzwerk befindet und wer seinen Rechner gerade angeschaltet hat.

Genau, diese Verwaltungsfunktionen des Betriebssystem werden über die API eben dieses Betriebssystems zur Verfügung gestellt. Deshalb auch der Veweis auf Netbios.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: lokales Netzwerk - Arbeitsgruppendaten auslesen

Beitrag von marcov »

mintpc hat geschrieben:Also, wenn ich recht verstehe hab ich mit den Netzwerkkomponenten (LNET)
keine wirkliche Möglichkeit, das Netzwerk, in dem ich mich befinde, auf
benachbarte IPs zu untersuchen, d.h. zu sehen, wer sich gerade noch im
Netzwerk befindet und wer seinen Rechner gerade angeschaltet hat.


Theoretisch: vielleicht, aber praktisch nicht.

mintpc
Beiträge: 124
Registriert: Mo 6. Sep 2010, 18:39
OS, Lazarus, FPC: Win 7 (L 1.6 FPC 3.0.0)
CPU-Target: Win 7
Wohnort: Mailand

Re: lokales Netzwerk - Arbeitsgruppendaten auslesen

Beitrag von mintpc »

Schade. :cry:

Das wäre soooooooo praktisch gewesen.

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: lokales Netzwerk - Arbeitsgruppendaten auslesen

Beitrag von carli »

mintpc hat geschrieben:Also, wenn ich recht verstehe hab ich mit den Netzwerkkomponenten (LNET)
keine wirkliche Möglichkeit, das Netzwerk, in dem ich mich befinde, auf
benachbarte IPs zu untersuchen, d.h. zu sehen, wer sich gerade noch im
Netzwerk befindet und wer seinen Rechner gerade angeschaltet hat.

Richtig?

mintpc



Geht alles.
Mit UDP.
Man sendet einen Broadcast ans Netzwerk (IP 255.255.255.255) und du schreibst ein Empfängerprogramm, das auf diesen Broadcast antwortet. So funktionieren übrigens auch Suchanfragen in LAN-Spielen.

mintpc
Beiträge: 124
Registriert: Mo 6. Sep 2010, 18:39
OS, Lazarus, FPC: Win 7 (L 1.6 FPC 3.0.0)
CPU-Target: Win 7
Wohnort: Mailand

Re: lokales Netzwerk - Arbeitsgruppendaten auslesen

Beitrag von mintpc »

Jaaaaaaa,... das hatte ich auch schon probiert, mit den Indy-Komponenten unter
Delphi (Indy 9). Und da lief das auch super mit dem Broadcast.

Allerdings wollte ich konsequent auf Lazarus umsteigen, und so richtig bekomme ich die
Indy 9 Komponenten nicht zu installieren, also hab ich das mit LNet probiert.

Nur hier ist scheinbar das Problem, dass der UDP-Client sich am UDP-Server
anmelden muss, um etwas empfangen zu können. Oder irre ich mich? Gibt es da
tatsächlich ein Möglichkeit?

mintpc

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: lokales Netzwerk - Arbeitsgruppendaten auslesen

Beitrag von monta »

Indy 10 läuft bei mir mit Lazarus.

Vielleicht kannst du statt der 9 die 10 nehmen und ansonsten deine Umsetzung behalten?

http://www.indyproject.org/Sockets/fpc/index.de.aspx
Johannes

mintpc
Beiträge: 124
Registriert: Mo 6. Sep 2010, 18:39
OS, Lazarus, FPC: Win 7 (L 1.6 FPC 3.0.0)
CPU-Target: Win 7
Wohnort: Mailand

Re: lokales Netzwerk - Arbeitsgruppendaten auslesen

Beitrag von mintpc »

Hey Leute, ich bin der glücklichste Mensch des Abends.
Es klaaaaaaaapt (erstmal im kleinen Testprogramm).

Man muss nur den LNet Client bei 255.255.255.255 anmelden (Client heißt die UDP-Komponente):


Code: Alles auswählen

client.Connect('255.255.255.255', 44);
client.SendMessage('Broadcast','255.255.255.255');


und damit ging der Broadcast.

Junge, Junge. Junge. Über dieser Sache saß ich jetzt schon mindestens 4 Wochen.
Danke Carli für diesen nochmaligen Anstupser, und monta auch, natürlich, die 10er Indys
werde ich mir auch mal ansehen. Laufen die denn gut bei dir? Im Forum geht ja so das
Gerücht um, man sollte von Indy in Kombi mit Lazarus ja lieber die Finger davon lassen.

Gute Nacht
MintPC

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: lokales Netzwerk - Arbeitsgruppendaten auslesen

Beitrag von monta »

Ich habe natürlich bei weitem nicht alle Komponenten im Einsatz gehabt. Ich bin auch kein Freund dieses riesigen Packages was etwas überladen ist. Das ganze macht es teilweise sehr unübersichtlich und ohne Einarbeitung fast unmöglich in die Funktionsweise der einzelnen Indy-Komponenten einzutauchen.

Aber das ist mehr eine generelle Abneigung somal ich meisten einfache Dinge benötige, welche mit schlanken Bibliotheken, welche Teilweise auch näher am FPC entwickelt werden, abgedeckt sind. Und wenn diese ausreichen, verzichte ich lieber auf die Indys. Aber wenn man sie denn Benutzen möchte/muss hatte ich bisher nie Probleme und sie liefen auch einwandfrei.
Johannes

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: lokales Netzwerk - Arbeitsgruppendaten auslesen

Beitrag von carli »

monta hat geschrieben:Ich habe natürlich bei weitem nicht alle Komponenten im Einsatz gehabt. Ich bin auch kein Freund dieses riesigen Packages was etwas überladen ist. Das ganze macht es teilweise sehr unübersichtlich und ohne Einarbeitung fast unmöglich in die Funktionsweise der einzelnen Indy-Komponenten einzutauchen.

Aber das ist mehr eine generelle Abneigung somal ich meisten einfache Dinge benötige, welche mit schlanken Bibliotheken, welche Teilweise auch näher am FPC entwickelt werden, abgedeckt sind. Und wenn diese ausreichen, verzichte ich lieber auf die Indys. Aber wenn man sie denn Benutzen möchte/muss hatte ich bisher nie Probleme und sie liefen auch einwandfrei.


Es fehlt in der RTL leider eine gute Implementierung einer plattformunabhängigen Netzwerkkomponente. (Input und Output sollten TStream sein und der Befehlsumfang mindestens der von SDL_NET) - leider fehlts da bei mir an Plattformspezifischen Wissen, sodass ich mich noch nicht rangewagt hab :(

Antworten