[파일] MAC Address(물리적 주소) 구조와 추출 코드(C#)
MAC Address는 Media Access Control(미디어 접근 제어) 주소를 의미한다.
네트워크 통신을 위해 각 네트워크 인터페이스에 할당된 고유 식별 주소(식별자)다.
다른 말로는 하드웨어 주소, 이더넷 주소, 물리적 주소라고도 한다.
MAC 어드레스는 네트워크에서 특정 장치를 식별하고 전달하는데 중요하게 사용된다.
MAC 어드레스는 48비트(6Byte)이며, 16진수로 표시되며
콜론(:)으로 구분된 2개의 16진수 숫자로 구성된 6개의 그룹으로 구분해서 표시된다.
(콜론 외에도 하이픈 ' - ' 이나, 점(' . ')으로도 표시하기도 한다.)
00:1A:2B:3C:4D:5E
MAC 주소의 전반부(24비트=3바이트)는 NIC(네트워크 인터페이스 카드)의 제조업체나 공급업체를 식별하는
OUI(조직 고유 식별자)값이다. 후반부(24비트=3바이트)는 제조업체가 특정 장치에 할당한 고유 식별값이다.
위의 예를 구분하면 00:1A:2B가 제조업체를 나타내고, 3C:4D:5E는 제조업체가 만든 고유값이다.
OUI(제조업체 식별코드)는 IEEE에 등록되어 있다.
MAC 주소는 아래와 같은 역할을 한다.
이더넷 네트워크에서의 주소 지정:
MAC 주소는 데이터 프레임의 주소를 지정하고 올바른 대상으로 전달하기 위해
이더넷 프레임에는 헤더에 소스 및 대상 MAC 주소가 포함된다.
장치 식별:
MAC 주소는 네트워크의 장치를 고유하게 식별하는데 사용된다.
네트워크 보안:
MAC 주소는 ACL(액세스 제어 목록)에서 사용되어 장치의 MAC 주소를 기반으로 네트워크에 대한 액세스를 허용하거나 거부할 수 있는 용도로 사용된다.
ARP(주소 확인 프로토콜):
IPv4 네트워크에서는 ARP 프로토콜을 사용하여 IP 주소를 MAC 주소에 매핑하여 장치 간 통신용도에 사용한다.
장치 추적:
MAC 주소는 네트워크의 장치를 추적하고 관리하는 데 사용된다.
아래 링크를 통해 IEEE에 등록된 OUI 리스트를 볼 수 있다.
https://standards-oui.ieee.org/
물론, Samsung도 64:1B:2F로 시작되는 OUI 코드값을 가지고 있다.
아래의 코드는 C#으로 작성되었으며 실행하게 되면 PC에 설치된 모든 물리적 장치들에 대한
MAC Address를 화면에 아래처럼 뿌려준다.
캡처된 위의 MAC Address에서 wi-fi 아답터의 CC1531~로 시작하는 OUI를
IEEE에서 찾아보면 아래처럼 Intel의 OUI임을 확인할 수 있다.
using System;
using System.Net.NetworkInformation;
class Program
{
static void Main()
{
DisplayMacAddresses();
}
static void DisplayMacAddresses()
{
NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
Console.WriteLine("MAC Addresses of all devices on your PC:");
foreach (NetworkInterface nic in networkInterfaces)
{
Console.WriteLine($"{nic.Description}: {nic.GetPhysicalAddress()}");
}
}
}