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 ...
Einfach mal nach "IP Scanner" googlen. Findest dann sowas wie http://www.advanced-ip-scanner.com/de/
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)
Max Mustermann schrieb: > Einfach mal nach "IP Scanner" googlen. > > Findest dann sowas wie > http://www.advanced-ip-scanner.com/de/ Dass es Software gibt, die das kann ist keine Frage. Ich brauch die Funktion innerhlab einer eigenen App - da nützt mir das wenig.
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.
sind WMI-Abfragen erlaubt? Hier sind die Möglichkeiten umfangreicher
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.
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
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.
Gerd E. schrieb: > Viele Windows-Maschinen antworten "dank" der ach so tollen > Windows-Firewall und ihrer Standardkonfiguration nicht auf Ping. Windows soll ja auch nicht Antworten, er will ja "seine" Geräte finden.
Frank schrieb: > 1. 10 ... 20 mal Ping auf broadcast, also LAN.LAN.LAN.255 Ein Gerät ist nicht verpflichtet, auf ICMP mit Broadcast-Adresse zu reagieren. Aus Sicherheitsgründen tun das einige auch nicht.
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
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.
Ein anderer Weg besteht im "Gratuitous ARP". Die Mikrocontroller senden zyklisch einen ARP Frame und sorgen dadurch dafür, die ARP Caches stets aktuell sind. http://de.wikipedia.org/wiki/Address_Resolution_Protocol#Gratuitous_ARP
Peter II schrieb: > dann muss er aber alle MACs ausprobieren. Vorgabe war, dass die MAC jedes Gerätes bekannt ist. Beispielsweise weil sie drauf steht.
A. K. schrieb: > Vorgabe war, dass die MAC jedes Gerätes bekannt ist. Beispielsweise weil > sie drauf steht. ja, aber auch jede IP ist bekannt und man kann sich immer noch nicht sinnvoll mal schnell durchprobieren.
Peter II schrieb: > Ich würde die Geräte einfach einen UDP-Broadcast an einen bestimmen > Ports jedem Minuten senden lassen. Kann lustige Effekte bringen, wenn der Port irgendwo im Netz zufällig anderweitig belegt ist. Mit dieser Methode macht man sich beim Netzadmin unbeliebt.
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.