Geräte im LAN finden - Strategie ok?

Gast #3895395
Lesenswert?

Es geht darum, in einem LAN die IP-Adresse von Geräten auf 
Mikrocontroller-Basis herauszufinden, deren MAC-Adresse bekannt ist, die 
IP-Adresse wegen des Einsatzes von DHCP zunächst jedoch nicht.

Ich habe etwas experimentiert (Win und Mac) und eine Strategie gefunden, 
die brauchbar scheint - zu der ich die werte Gemeinde jedoch auf ihre 
Stichhaltigkeit befragen möchte :-)

1. 10 ... 20 mal Ping auf broadcast, also LAN.LAN.LAN.255
2. ein par Sekunden warten
3. Ausführen von arp -a und Parsen der Ergebnisse

So erscheinen im Prinzip alle Hosts im LAN, oder nicht?  Ohne den Ping 
habe ich festgestellt, fehlen einfach einzelne Teilnehmer, zu denen der 
Rechner, auf dem ich das ausführe, bisher keine Verbindung hatte ...

Andere Vorschläge? Kritik? Danke für Tips ...
Gast #3895668
Lesenswert?

Frank schrieb:
> Andere Vorschläge? Kritik? Danke für Tips ...

> 1. 10 ... 20 mal Ping auf broadcast, also LAN.LAN.LAN.255
dafür müssen sie aber im gleichen Subnetz sein.

> 3. Ausführen von arp -a und Parsen der Ergebnisse
arp -a parsen ist schon mal murks, was ist wenn sich mal die Ausgabe 
ändert?


Warum nicht einen Standard verwenden:
http://de.wikipedia.org/wiki/Bonjour_(Apple)
Gast #3895905
Lesenswert?

Peter II schrieb:
> Frank schrieb:
>> Andere Vorschläge? Kritik? Danke für Tips ...
>
>> 1. 10 ... 20 mal Ping auf broadcast, also LAN.LAN.LAN.255
> dafür müssen sie aber im gleichen Subnetz sein.

Das genügt für meine Anforderungen, davon gehe ich aus ...

>> 3. Ausführen von arp -a und Parsen der Ergebnisse
> arp -a parsen ist schon mal murks, was ist wenn sich mal die Ausgabe
> ändert?

Ja, das ist prinzipiell ein Problem, aber solche Systemtools ändern sich 
nicht so wahnisinnig schnell. Arp hat sich z.B. seit Win2000 nicht 
geändert. Hält sich m.E. im Rahmen normaler Updatezyklen ...

> Warum nicht einen Standard verwenden:
> http://de.wikipedia.org/wiki/Bonjour_(Apple)

Weil unter Windows nicht damit zu rechnen ist, dass das jeder 
installiert hat - kommt meist nur mit iTues auf Windows-Rechner, was im 
industriellen Umfeld eher selten sein dürfte. Unter Mac OS ist es 
systemimmanent. Ich will das für ein Konfigurationstool für Hardware auf 
Mikrocontroller-Basis verwenden.
Gast #3895928
Lesenswert?

anbei vorgefertigte Standardabfragen, welche du dir anpassen kannst

1. Active DNS - WMI Query - SELECT DNSServerSearchOrder FROM 
Win32_NetworkAdapterConfiguration where IPEnabled = 'True'
2. Active IP - WMI Query - SELECT IPAddress FROM 
Win32_NetworkAdapterConfiguration where IPEnabled = 'True'
3. Active MAC Address - WMI Query - SELECT MACAddress FROM 
Win32_NetworkAdapterConfiguration where IPEnabled = 'True'
4. Active Subnet Mask - WMI Query - SELECT IPSubnet FROM 
Win32_NetworkAdapterConfiguration where IPEnabled = 'True'
5. Manufacturer - WMI Query - SELECT Manufacturer FROM 
Win32_ComputerSystem
6. Model - WMI Query - SELECT Model FROM Win32_ComputerSystem
7. OS and Edition - Registry Value - 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows 
NT\CurrentVersion\ProductName
8. OS Architecture - WMI Query - SELECT OSArchitecture FROM 
Win32_OperatingSystem
9. OS Architecture XP2K3 - Registry Value - 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session 
Manager\Environment\PROCESSOR_ARCHITECTURE
10. Workgroup - WMI Query - SELECT Workgroup FROM Win32_ComputerSystem
#3895929
Lesenswert?

Ob das in Deiner ARP-Tabelle drin ist, hängt von Deiner 
IP-Impementierung ab. Und wenn Du einen transparenten Router hast 
(selten aber so was gibts) kriegst Du im bsten Fall nur lauter gleiche 
Einträge.

Die normale Möglichkeit ist per Broadcastpaket. Sprich Du schickst ein 
Broadcastpaket und die Geräte antworten. Da gibts jede Menge 
unterschiedlicher Standards die alle ähnlich mistig sind.

Was möglich, jedoch unschön ist, ist einfach einen Portscan zu machen, 
sprich einfach alle möglichen IP-Adressen durchzuprüfen.
Gast #3896095
Lesenswert?

Frank schrieb:
> Es geht darum, in einem LAN die IP-Adresse von Geräten auf
> Mikrocontroller-Basis herauszufinden, deren MAC-Adresse bekannt ist, die
> IP-Adresse wegen des Einsatzes von DHCP zunächst jedoch nicht.

Wenn das deine eigenen Konstruktionen sind, kannst du denen ja eine 
Portnummer verpassen, auf der sie mit ihrer Identifikation antworten, 
und danach scannen. Sehr unwahrscheinlich, dass Fremdgeräte in gleicher 
Weise antworten.

Georg
Gast #3896188
Lesenswert?

Georg schrieb:
> Frank schrieb:
>> Es geht darum, in einem LAN die IP-Adresse von Geräten auf
>> Mikrocontroller-Basis herauszufinden, deren MAC-Adresse bekannt ist, die
>> IP-Adresse wegen des Einsatzes von DHCP zunächst jedoch nicht.
>
> Wenn das deine eigenen Konstruktionen sind, kannst du denen ja eine
> Portnummer verpassen, auf der sie mit ihrer Identifikation antworten,
> und danach scannen. Sehr unwahrscheinlich, dass Fremdgeräte in gleicher
> Weise antworten.
>
> Georg

Wird wohl am Ende das Einfachste und Sicherste sein, wenn auch irgendwie 
"unelegant" ... seufz ... trotzdem Danke für die Tips.
#3896196
Lesenswert?

Viele Windows-Maschinen antworten "dank" der ach so tollen 
Windows-Firewall und ihrer Standardkonfiguration nicht auf Ping.

Wenn die Netzmaske 16 Bit und größer ist kannst Du per ARP einfach alle 
Adressen nacheinander abfragen. Das geht auch mit Windows Firewall etc..

Vor allem bei den gängigen 24 Bit Netzmasken ist das schnell durch und 
zuverlässig. Bei 8 Bit Netzen und ähnlichem ist das natürlich nicht mehr 
realistisch.
Gast #3896238
Lesenswert?

A. K. schrieb:
> Ein Gerät ist nicht verpflichtet, auf ICMP mit Broadcast-Adresse zu
> reagieren. Aus Sicherheitsgründen tun das einige auch nicht.

er wird wohl wissen was seine Geräte machen und was nicht. Er hat es ja 
sogar schon getestet also scheint es auch zu gehen.
#3896240
Lesenswert?

Peter II schrieb:
> er wird wohl wissen was seine Geräte machen und was nicht. Er hat es ja
> sogar schon getestet also scheint es auch zu gehen.

Dann könnte er auch gleich Nägel mit Köpfen machen und den passenden 
Standard "Inverse ARP" implementieren. Das läuft als Erweiterung 
gewöhnlichen ARPs, mit anderem Opcode für MAC=>IP statt IP=>MAC: 
http://tools.ietf.org/html/rfc2390
Gast #3896246
Lesenswert?

A. K. schrieb:
> Dann könnte er auch gleich Nägel mit Köpfen machen und den passenden
> Standard "Inverse ARP" implementieren. Das läuft als Erweiterung
> gewöhnlichen ARPs, mit anderem Opcode für MAC=>IP statt IP=>MAC:
> http://tools.ietf.org/html/rfc2390

dann muss er aber alle MACs ausprobieren.


Ich würde die Geräte einfach einen UDP-Broadcast an einen bestimmen 
Ports jedem Minuten senden lassen. Dann muss er nur den Port öffnen 
maximal 1minute warten und schon hat er alle Geräte im Netzt gefunden.
#3896254
Lesenswert?

Peter II schrieb:
> ja, aber auch jede IP ist bekannt

Nur dem DHCP Server und dem Mikcocontroller, nicht aber dort, wo er das 
wissen will. Und wenn der DHCP kein SNMP kann...

Aufgabe war:

Frank schrieb:
> in einem LAN die IP-Adresse von Geräten auf
> Mikrocontroller-Basis herauszufinden, deren MAC-Adresse bekannt ist,

Also MAC Adresse bekannt, IP unbekannt. Exakt dafür ist InvARP da.
Gast #3896259
Lesenswert?

A. K. schrieb:
> Kann lustige Effekte bringen, wenn der Port irgendwo im Netz zufällig
> anderweitig belegt ist. Mit dieser Methode macht man sich beim Netzadmin
> unbeliebt.

Wenn ein anders Programm auch Daten reagiert die nicht für es bestimmt 
ist Dann stimmt eh etwas nicht. Damit muss man immer rechnen.
Und so lange nicht in der Sekunde 100 Broadcast verschickt werden, 
sollte ein admin damit kein Problem haben.
#3896267
Lesenswert?

Peter II schrieb:
> Wenn ein anders Programm auch Daten reagiert die nicht für es bestimmt
> ist Dann stimmt eh etwas nicht.

Gibt u.U. einen irritierten Syslog-Eintrag des betreffenden Daemons, 
auch dann wenn dabei nichts in die Luft fliegt.

In seinem eigenen Netz kann man machen was man will. Will man Geräte 
verkaufen, sollte man bei solchen Strategien vorsichtig sein. Auch 
unangekündigte IP-Scans können sauer aufstossen.
Gast #3896559
Lesenswert?

Frank schrieb:
> Wird wohl am Ende das Einfachste und Sicherste sein, wenn auch irgendwie
> "unelegant"

Ich schätze, dass das die Hersteller von Printservern so machen - 
MAC-Adressen muss man nicht eingeben, nach Start des Tools werden alle 
Printserver der Firma im Netz angezeigt, auch die mit "falscher" IP. Ist 
auch bei Comport-Servern usw. üblich.

Georg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren