반응형
윈도우 명령 프롬프트에서 arp -a 실행하면 현재 네트워크 맥어드레스를 가져옵니다.
이 과정을 동일한 프로세스로 구현
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
39
40
41
42
43
44
45
46
47
48
49
50
51
|
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace ConsoleARP
{
class Program
{
static void Main(string[] args)
{
var pairs = GetMacIpPairs();
foreach (var pair in pairs)
{
Console.WriteLine(string.Format("{0}\t{1}", pair.IpAddress, pair.MacAddress));
}
Console.ReadKey();
}
public static IEnumerable<MacIpPair> GetMacIpPairs()
{
System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
pProcess.StartInfo.FileName = "arp";
pProcess.StartInfo.Arguments = "-a ";
pProcess.StartInfo.UseShellExecute = false;
pProcess.StartInfo.RedirectStandardOutput = true;
pProcess.StartInfo.CreateNoWindow = true;
pProcess.Start();
string cmdOutput = pProcess.StandardOutput.ReadToEnd();
string pattern = @"(?<ip>([0-9]{1,3}\.?){4})\s*(?<mac>([a-f0-9]{2}-?){6})";
foreach (Match m in Regex.Matches(cmdOutput, pattern, RegexOptions.IgnoreCase))
{
yield return new MacIpPair()
{
MacAddress = m.Groups["mac"].Value,
IpAddress = m.Groups["ip"].Value
};
}
}
public struct MacIpPair
{
public string MacAddress;
public string IpAddress;
}
} // class(e)
} // namespace(e)
|
cs |
'Windows' 카테고리의 다른 글
PID를 알고 있을때 process kill 방법 (0) | 2021.12.16 |
---|---|
C# parent & child process PID 찾기 (0) | 2021.12.16 |
Color Property (0) | 2021.04.03 |
C# 쓰레드를 위한 ConcurrentDictionary (0) | 2021.03.21 |
C# TableLayoutPanel MouseMove event 마우스 올렸을때 셀 색상변경 (0) | 2020.11.10 |