MAC 주소란 무엇인가?
MAC 주소(Media Access Control Address)는 네트워크에 연결된 장치에 할당되는 고유 식별자입니다. 각 네트워크 인터페이스 카드(NIC)마다 고유한 MAC 주소가 부여되어 있으며, 이를 통해 네트워크 상에서 장치를 정확하게 구분할 수 있습니다.
MAC 주소 기술은 이더넷(Ethernet), 블루투스(Bluetooth), 파이버 채널(Fibre Channel) 등 다양한 통신 기술에서 폭넓게 활용되고 있습니다.
C#에서 MAC 주소를 추출하는 방법
C#에서는 NetworkInterface.GetAllNetworkInterfaces 메서드를 사용하여 컴퓨터에 설치된 모든 네트워크 인터페이스를 조회할 수 있습니다. 이 메서드는 시스템의 모든 네트워크 어댑터 정보를 배열 형태로 반환합니다.
또한 NetworkInterfaceType 열거형을 함께 사용하면 이더넷, 무선 LAN 등 네트워크 인터페이스의 유형까지 구분하여 확인할 수 있습니다.
예제 코드
아래 코드는 활성화된(Up 상태) 네트워크 인터페이스를 찾아 해당 MAC 주소를 추출하는 예제입니다.
string addr = "";
foreach (NetworkInterface n in NetworkInterface.GetAllNetworkInterfaces()) {
if (n.OperationalStatus == OperationalStatus.Up) {
addr += n.GetPhysicalAddress().ToString();
break;
}
}
return addr;코드 설명
위 코드의 동작 방식은 다음과 같습니다.
1. 네트워크 인터페이스 전체 조회: NetworkInterface.GetAllNetworkInterfaces() 메서드로 시스템의 모든 네트워크 인터페이스를 가져옵니다.
2. 활성 상태 필터링: OperationalStatus.Up 조건을 통해 현재 작동 중인 인터페이스만 선별합니다. 비활성화된 어댑터는 제외됩니다.
3. MAC 주소 추출: 핵심인 GetPhysicalAddress() 메서드를 사용하여 해당 인터페이스의 물리적 주소, 즉 MAC 주소를 추출합니다.
4. 결과 반환: 첫 번째로 발견된 활성 인터페이스의 MAC 주소를 문자열로 반환하고 반복문을 종료합니다.
마무리
이처럼 C#의 System.Net.NetworkInformation 네임스페이스를 활용하면 몇 줄의 코드만으로도 손쉽게 MAC 주소를 얻을 수 있습니다. 라이선스 검증, 장치 식별, 네트워크 관리 도구 개발 등 다양한 용도로 응용할 수 있으니 참고하시기 바랍니다.