Rechnernamen im lokalen Netzwerk
Rechnernamen im lokalen Netzwerk
Hallo,
gibt es eine einfache Möglichkeit alle Rechnernamen im lokalen Netzwerk abzufragen?
Viele Grüße
solino
gibt es eine einfache Möglichkeit alle Rechnernamen im lokalen Netzwerk abzufragen?
Viele Grüße
solino
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2805
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Rechnernamen im lokalen Netzwerk
Nein.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Re: Rechnernamen im lokalen Netzwerk
Mit den beiden folgenden Funktionen sollte es klappen:
Alle IP-Adressen auflisten:
Quelle: http://synapse.ararat.cz/doku.php/start
Rechnernamen aus IP-Adresse ermitteln:
Quelle: http://www.swissdelphicenter.ch/torry/s ... php?id=170
Alle IP-Adressen auflisten:
Code: Alles auswählen
function GetLocalIPs: string;
var
TcpSock: TTCPBlockSocket;
ipList: TStringList;
begin
Result := '';
ipList := TStringList.Create;
try
TcpSock := TTCPBlockSocket.create;
try
TcpSock.ResolveNameToIP(TcpSock.LocalName, ipList);
Result := ipList.CommaText;
finally
TcpSock.Free;
end;
finally
ipList.Free;
end;
end;
Rechnernamen aus IP-Adresse ermitteln:
Code: Alles auswählen
function IPAddrToName(IPAddr: string): string;
var
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
WSAData: TWSAData;
begin
WSAStartup($101, WSAData);
SockAddrIn.sin_addr.s_addr := inet_addr(PChar(IPAddr));
HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
if HostEnt <> nil then
Result := StrPas(Hostent^.h_name)
else
Result := '';
end;
Zuletzt geändert von Lori am Fr 20. Jun 2014, 15:14, insgesamt 1-mal geändert.
Grund: Highlighter
Grund: Highlighter
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2805
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Rechnernamen im lokalen Netzwerk
Völliger Quatsch.
Hast du deine Tipps vorher ausprobiert oder einfach nur ein wenig gegoogelt und dann etwas halbwegs passendes gepostet?
Das listet dir alle IP-Adressen auf, die das lokale System nutzt. Aber nicht alle IP-Adressen des lokalen Netzwerks.Solino hat geschrieben:Alle IP-Adressen auflisten:
Das funktioniert nur unter Windows und liefert dir auch nur ein Ergebnis zurück, wenn der Hostname und IP irgendwo eingetragen sind. Entweder im zuständigen DNS oder in der HOSTS-Datei. Ist das nicht der Fall, bleibt der Name leer.Solino hat geschrieben:Rechnernamen aus IP-Adresse ermitteln:
Hast du deine Tipps vorher ausprobiert oder einfach nur ein wenig gegoogelt und dann etwas halbwegs passendes gepostet?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Rechnernamen im lokalen Netzwerk
Nein würd ich darauf jetzt auch nicht pauschal antworten. Du könntest ja z.b. das gesamte Subnet mit ARP Anfragen beflacken
Ist zwar nicht sicher das mann dann alles findet, aber immerhin mehr als nichts.

W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2805
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Rechnernamen im lokalen Netzwerk
Naja, die Frage ist etwas ungenau. Was ist ein Rechnername? Was bedeutet einfach?
Letztendlich können da soviele Faktoren eine Rolle spielen, dass die Frage sich genauso beantworten lässt wie: Ist mein Rechner mit dem Internet verbunden? => http://www.marian-aldenhoevel.de/dojo/internet.html
Wenn der OP das Ganze genauer definiert, könnte man vielleicht auch eine weniger pauschale Antwort geben.
Letztendlich können da soviele Faktoren eine Rolle spielen, dass die Frage sich genauso beantworten lässt wie: Ist mein Rechner mit dem Internet verbunden? => http://www.marian-aldenhoevel.de/dojo/internet.html
Wenn der OP das Ganze genauer definiert, könnte man vielleicht auch eine weniger pauschale Antwort geben.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Re: Rechnernamen im lokalen Netzwerk
Hallo,
Rechnername = das was der Explorer unter "Netzwerk" anzeigt.
Einfach = leicht in eigene Programme zu integrieren.
Ausprobiert = Ja
Ich möchte alle Rechnernamen ermittelt, die mit einem Server verbunden sind.
Mit den dargestellten Funktionen sollte das (mit ein paar Anpassungen!) funktionieren.
Vielleicht hilft´s dem einen oder anderen...
Rechnername = das was der Explorer unter "Netzwerk" anzeigt.
Einfach = leicht in eigene Programme zu integrieren.
Ausprobiert = Ja
Ich möchte alle Rechnernamen ermittelt, die mit einem Server verbunden sind.
Mit den dargestellten Funktionen sollte das (mit ein paar Anpassungen!) funktionieren.
Vielleicht hilft´s dem einen oder anderen...
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: Rechnernamen im lokalen Netzwerk
Und was verstehst du unter "verbunden"? Mit einem Webserver bin ich auch nicht (mehr) verbunden, wenn ich eine HTML Seite lese. Oder suchst du vielleicht nach einem Portscanner? Ansonsten: Kennst du die Clients, sprich: Sind es deine eigenen Programme? Dann gib ihnen doch bei der Anmeldung einfach einen Alias mit. Wenn es nur um Windows-PCs in einem lokalen Netz geht, dann suchst du wahrscheinlich nach NetBIOS. Aber da wissen andere sicher besser Bescheid. 

- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2805
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Rechnernamen im lokalen Netzwerk
Kann ich mir nur schwer vorstellen, kannst du das noch weiter ausführen?Solino hat geschrieben:Ich möchte alle Rechnernamen ermittelt, die mit einem Server verbunden sind.
Mit den dargestellten Funktionen sollte das (mit ein paar Anpassungen!) funktionieren.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Rechnernamen im lokalen Netzwerk
Ich habs gerade ausprobiert und die Funktion liefert nur die Lokalen IPś zurück (wie auch anders).Ausprobiert = Ja
Aber wenn du uns und dich selbst belügst ist dein Problem ja wohl behoben.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Rechnernamen im lokalen Netzwerk
Nur, wenn alle Rechner DHCP verwenden und außerdem tatsächlich die in DHCP vorgesehene Bekanntgabe des Rechner-Namens verwenden und der DHCP-Server tatsächlich eine Liste Der Rechner-Namen führt (und diese mit an den lokalen Nameserver weitergibt).Solino hat geschrieben:gibt es eine einfache Möglichkeit alle Rechnernamen im lokalen Netzwerk abzufragen?
Dann kannst Du den DHCP-Server nach Rechnernamen fragen oder Reverse-DNS mit den gefundenen IP-Adressen machen.
Die lokalen (d.h nicht hinter einem Router) IP-Adressen kannst Du theoretisch über ARP-Broadcast/Request finden
-Michael
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Rechnernamen im lokalen Netzwerk
Michael, jetzt sagst mir bitte mal die Seite der RFC auf der du findest wie man nen DHCP Server nach den Clients fragt.
https://tools.ietf.org/html/rfc2131
https://tools.ietf.org/html/rfc2131
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Rechnernamen im lokalen Netzwerk
Ich hatte gehofft das geht. Ist aber wohl nicht standardisiert
.
(Natürlich geht es z.B. über proprietäre Wege wie eine Website des Routers, der einen DHCP-Server hat oder eine Datei auf einem Linux-Server.)
Bleibt also ARP und reverse Name Request.
Dank für die Aufklärung.
-Michael

(Natürlich geht es z.B. über proprietäre Wege wie eine Website des Routers, der einen DHCP-Server hat oder eine Datei auf einem Linux-Server.)
Bleibt also ARP und reverse Name Request.
Dank für die Aufklärung.
-Michael
Re: Rechnernamen im lokalen Netzwerk
In einen Forum für "Einsteigerfragen" hätte ich so "tolle" Antworten wirklich nicht erwartet...Christian hat geschrieben:Ich habs gerade ausprobiert und die Funktion liefert nur die Lokalen IPś zurück (wie auch anders).Ausprobiert = Ja
Aber wenn du uns und dich selbst belügst ist dein Problem ja wohl behoben.
Wo ist denn der Unterschied zwischen "in einem lokalen Netzwerk" und "lokale IPs" ???
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2805
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Rechnernamen im lokalen Netzwerk
Naja, wenn du verkündest, dass etwas funktioniert, was nicht funktionieren kann. Dann kann es sein, dass andere Teilnehmer danicht in deinem Sinne darauf reagieren.Solino hat geschrieben:In einen Forum für "Einsteigerfragen" hätte ich so "tolle" Antworten wirklich nicht erwartet...Christian hat geschrieben:Ich habs gerade ausprobiert und die Funktion liefert nur die Lokalen IPś zurück (wie auch anders).
Aber wenn du uns und dich selbst belügst ist dein Problem ja wohl behoben.
Bei deiner Fragestellung kommt hinzu: es ist immer noch unklar was du willst. Erst möchtest du alle Rechnernamen in einem Netzwerk haben. Das ist so pauschal gesehen, nicht machbar.
Dann wird es etwas genauer: es geht um SMB-Server und -Clients (zumindest lese ich das aus "das was der Explorer unter "Netzwerk" anzeigt").
Dann die nächste Einschränkung: "alle Rechnernamen ermittelt, die mit einem Server verbunden sind." Das muss ja nicht mehr das ganze Netzwerk sein. Wobei unklar ist, ob dein Programm auf dem Server läufft oder irgendwo anders.
Deswegen gibt es auch immer noch keine konkrete Antwort.
In einem lokalen Netzwerk kann es mehr als einen Rechner geben. Die lokalen IP-Adressen, sind alle IP-Adressen die EIN Rechner besitzt. Im Falle deines Quellcodes nämlich der, auf dem das ganze ausgeführt wird.Solino hat geschrieben:Wo ist denn der Unterschied zwischen "in einem lokalen Netzwerk" und "lokale IPs" ???
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de