Holen Sie sich einen Maschinen-MAC-Adresse auf dem lokalen Netzwerk anhand der IP, die in C#
Ich versuche eine Funktion schreiben, die eine einzelne IP address
als parameter und Abfragen, die Maschine auf meinem lokalen Netzwerk, für die es MAC address
.
Ich habe gesehen, viele Beispiele, dass die lokale Maschine die eigene MAC address
aber keine (die ich gefunden hab), die scheinen für die Abfrage eines lokalen Netzwerks Maschine für Sie.
Ich wissen, wie eine Aufgabe ist erreichbar, wie dies Wake-on-LAN scanner software scannt die lokalen IP-Bereich und gibt die MAC-Adresse/Hostname von Maschinen.
Kann mir jemand sagen, wo ich begann zu schreiben versucht, eine Funktion dafür in C#? Jede Hilfe würde geschätzt werden. Dank
EDIT:
Als pro Mp Marco ' s Kommentar unten, haben, verwendet ARP-Tabellen.
arp-Klasse
- Nicht sicher, ob es funktioniert, aber mit eine schnelle google-Suche fand ich diese Bibliothek sollte den trick tun: http://www.tamirgal.com/blog/post/ARP-Resolver-C-Class.aspx
- Danke, ich glaube ich habe gelesen, ARP-Tabellen, widersprüchlich und Frage mich, ob es einen Weg gibt, um "ping" für die MAC-Adresse.
- Ich denken, dass, wenn Sie einen regelmäßigen ping (oder anderweitig versuchen, Sie zu Kontaktieren) die IP-Adresse wird dazu führen, dass die ARP-Tabellen zu aktualisieren (andernfalls ist die Netzwerk-stack nicht in der Lage, Kontakt mit der Maschine in den ersten Platz); natürlich wird dies (wenn überhaupt) nur funktionieren, wenn die gewünschte Maschine online ist. Ich glaube nicht, dass Sie können erhalten Sie zuverlässige Ergebnisse für die offline-IP-Adressen, speziell, wenn Sie haben dynamisch zugewiesene IPs. Ich bin kein Netzwerk-Experte obwohl, so dass ich könnte falsch sein (der Versuch zu denken, mit der Sie auf das problem).
- Vielen Dank, ARP-Tabellen waren der Weg zu gehen. Hatte ein bisschen Schwierigkeiten mit dem Beispiel im ersten Kommentar so geschrieben haben alternative. Cheers
- Versuchen Sie, diese schöne und saubere Lösung: stackoverflow.com/a/37155004/6229375
- Möglich, Duplikat der Wie bekomme ich die physikalische (MAC) - Adresse eine IP-Adresse mithilfe von C#?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehr spät edit:
In der open-souce-Projekt iSpy (https://github.com/ispysoftware/iSpy) verwenden Sie diesen code, das ist ein wenig schöner
https://github.com/ispysoftware/iSpy/blob/master/Server/NetworkDeviceList.cs
Update 2 noch mehr zu spät, aber ich denke, am besten ist, weil es verwendet die regex prüft besser nach exakten übereinstimmungen.
oder mit PC Namen
Als pro Mp Marco ' s Kommentar oben, verwendet ARP-Tabellen. arp-Klasse
Nur eine leistungsfähigere version des akzeptierten Methode.