Hallo und guten Morgen, in einer C# Anwendung möchte ich während das
Programm läuft die MAC-Adresse von bestimmten IP-Adressen auslesen. Mit
folgender Funktion kann die MAC-Adresse einer bestimmten IP-Adresse
ausgelesen werden. Ist diese Funktion rechenintensiv? Gibt es eine
andere Möglichkeit in C# eine MAC-Adresse auszulesen:
1 | public string GetMacAddress(string ipAddress)
|
2 | {
|
3 | string macAddress = string.Empty;
|
4 | System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
|
5 | pProcess.StartInfo.FileName = "arp";
|
6 | pProcess.StartInfo.Arguments = "-a " + ipAddress;
|
7 | pProcess.StartInfo.UseShellExecute = false;
|
8 | pProcess.StartInfo.RedirectStandardOutput = true;
|
9 | pProcess.StartInfo.CreateNoWindow = true;
|
10 | pProcess.Start();
|
11 | string strOutput = pProcess.StandardOutput.ReadToEnd();
|
12 | string[] substrings = strOutput.Split('-');
|
13 | if (substrings.Length >= 8)
|
14 | {
|
15 | macAddress = substrings[3].Substring(Math.Max(0, substrings[3].Length - 2))
|
16 | + "-" + substrings[4] + "-" + substrings[5] + "-" + substrings[6]
|
17 | + "-" + substrings[7] + "-"
|
18 | + substrings[8].Substring(0, 2);
|
19 | return macAddress;
|
20 | }
|
21 | else
|
22 | {
|
23 | return string.Empty;
|
24 | }
|
25 | }
|