Geräte im LAN finden - Strategie ok?

Gast #3895395
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
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
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
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
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
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
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.
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
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.
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
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.
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
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.
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.

PS: Es sei denn man macht das auch wieder offiziell. Also schaut mal bei 
UPNP/SSDP rein, statt eigene Brötchen zu backen.
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
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

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.