1Danke
ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
2801
2801
EMPFEHLEN
-
08.01.10 11:26 #1
Grüß euch,
der Titel sagt eigentlich schon alles. Ich hab mehrere PCs im Netzwerk und für WakeOnLAN brauch ich ja die MAC der Netzwerkkarte. Da sich die PCs ab und zu ändern (Tausch wegen Defekt) will ich keine allgemeine Liste haben sondern mir ab und zu die PCs suchen und in meine Verwaltung aufnehmen.
Der Weg über die Konsole mittels getmac ist momentan der gangbare Weg für mich, irgendwie sollte es aber doch eine .NET-Alternative dazu geben. Hab schon in Netz gegraben aber nur die Konsolengeschichten gefunden.
Der Doc!A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
B: Die Scrollbar da rechts ist dir schon mal aufgefallen?
-
08.01.10 21:33 #2
- Registriert seit
- Aug 2001
- Ort
- Österreich, Stmk, Graz
- Beiträge
- 2.783
Hi Doc!
Würde mit VB.net wohl auch aus auslesen der Ausgabe vom arp Befehl hinauslaufen. Aber, in dem Netzwerk hast du doch sicher einen Router, oder? Hat der in seiner Verwaltungsoberfläche eine "Device List"? Dort sollten dann auch die MAC Adressen schön gelistet sein. Da der Router auch ziemlich sicher alle Rechner kennt, wäre diese Liste auch am ehesten vollständig.
lg, Alex
With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
Aaron Satie
Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
Captain Jean-Luc Picard, Stardate ~41294.5
Tutorials.de chattet. Hier gibts auch .net Support ^^
Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de
(moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions
-
08.01.10 22:10 #3
- Registriert seit
- Jul 2003
- Ort
- Montreal (Quebec)
- Beiträge
- 1.667
Stichwort ARP — dafür gibt es doch bestimmt eine VB-Lib (vorsichtig geraten)
-
10.01.10 15:16 #4
Das Netzwerk ist unser dienstliches Netzwerk, da ist nichts mit Routern bzw. dem Zugriff drauf. Ich hab da zwar (bedingte) Admin-Rechte, d.h. ich kann, wenn möglich, die MAC-Adresse auslesen, auf diverse Listen, die Logon-Server usw. hab ich aber keinen Zugriff.
ARP hab ich ja schon als DOS-Applikation gefunden, unter VB6 hab ich auch einen Code gefunden. Den nach .NET zu portieren ist aber eine aufwändige Arbeit, daher erst die .NET-Frage.
Ich werd aber mal schauen, ob es eine ARL-Lib gibt, danke schon mal für eure Hinweise.
Der Doc!A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
B: Die Scrollbar da rechts ist dir schon mal aufgefallen?
-
12.01.10 10:34 #5
So, nach langen, mühevollem Graben im Netz (ich seh aus, wie ein Ferkel
) hab ich etwas gefunden, das auf WMI basiert. Hab das ganze etwas gestrafft und in ein Funktion gequetscht (die zweite wird für die erste benötigt).
Code vb:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Public Function funcGetMAC(ByVal sPCName As String) As String funcGetMAC = "" Try Dim mc As New ManagementClass("win32_networkadapter") Dim myScope As ManagementScope myScope = New ManagementScope("\\" & sPCName & "\root\cimv2") For Each mo As ManagementObject In mc.GetInstances() Try If mo("adaptertype").ToString() = "Ethernet 802.3" AndAlso mo("manufacturer").ToString() <> "Microsoft" Then funcGetMAC = funcGetDetails("win32_networkadapterconfiguration.Index", mo("DeviceID").ToString(), sPCName) End If Catch End Try Next mo Catch exc As Exception MessageBox.Show(exc.Message) End Try End Function Private Function funcGetDetails(ByVal WmiClause As String, ByVal Instance As String, ByVal sPCName As String) As String Dim mo As New ManagementObject(WmiClause & "='" & Instance & "'") Dim myScope As ManagementScope funcGetDetails = "" myScope = New ManagementScope("\\" & sPCName & "\root\cimv2") mo.Scope = myScope mo.Get() Try funcGetDetails = mo("macaddress").ToString() Catch End Try End Function
Der Aufruf erfolgt über
Code vb:1
MAC = funcGetMAC(Computername)
Wie gesagt, ist nicht mein Code, hab ihn nur gestrafft, wenn ihn jemand braucht.
Der Doc!A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
B: Die Scrollbar da rechts ist dir schon mal aufgefallen?
-
Hallo,
ich habe da noch einen Code gefunden für C#.
Dieser findet die MAC-Adresse allerdings nicht über den Computernamen, sondern über die IP. Funktioniert auch über ARP:
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
[DllImport("iphlpapi.dll", ExactSpelling = true)] public static extern int SendARP(int DestIP, int SrcIP, [Out] byte[] pMacAddr, ref int PhyAddrLen); /// <summary> /// Ermittelt die MAC Adresse eines im Netzwerk befindlichen Computers /// </summary> /// <param name="ip">Die IP des Netzwerkcomputers</param> /// <returns>Die MAC Adresse im string format</returns> private string GetMACAdress(IPAddress ip) { try { byte[] ab = new byte[6]; int len = ab.Length; int r = SendARP((int)ip.Address, 0, ab, ref len); string mac = BitConverter.ToString(ab, 0, 6); return mac; } catch (Exception) { return "MAC not available"; } }
Quelle: http://dotnet-snippets.de/dns/c-mac-...se-SID905.aspx
allerdings lässt sich wie schon vorher gegeben auch natürlich über den Computernamen die IP-Adresse herausfinden:
Code csharp:1 2 3 4 5 6
String DnsName; DnsName = ###Computername### System.Net.IPHostEntry IHE = System.Net.Dns.Resolve(DnsName); string[] IP = new string[IHE.AddressList.Length]; for (int i = 0; i < IHE.AddressList.Length; i++) IP[i] = IHE.AddressList[i].ToString();
Quelle: http://www.mycsharp.de/wbb2/thread.php?threadid=66986
auch wenn du schon eine Lösung hast wollte ich diesen nochmal mit anbieten. (der in C# statt VB ist)
Gruß
SebastianGeändert von Razorhawk (19.01.10 um 01:14 Uhr)
Sebastian Schütze
Offizieller
Microsoft Junior Student Partner
und Microsoft Partner
Humboldt Universität zu Berlin
Email: sebastian.schuetze@studentpartners.de
Website der MSP: www.studentpartners.de
Webdesign: Razorstudio
Website: www.razorstudio.de
Email: Sebastian.Schuetze@razorstudio.de
Ähnliche Themen
-
[VB08] Programm auf Rechner im Netzwerk starten
Von DrSoong im Forum .NET Web und KommunikationAntworten: 1Letzter Beitrag: 21.03.10, 19:27 -
DNS Adresse auslesen
Von Hiu im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 09.09.05, 11:33 -
IP - Adresse eines Netzlaufwerkes ermitteln
Von bastiglasl im Forum .NET Web und KommunikationAntworten: 1Letzter Beitrag: 02.09.05, 12:15 -
IPs im lokalen Netzwerk auslesen (kein Windows-Netzwerk)
Von chris_smith im Forum C/C++Antworten: 1Letzter Beitrag: 03.11.04, 10:39 -
IP Adresse eines WebServers anzeigen
Von JSchreiber im Forum PHPAntworten: 2Letzter Beitrag: 29.09.04, 14:34






Zitieren

Login





