728x90
NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in networkInterfaces)
{
    string macAddress = adapter.GetPhysicalAddress().ToString();
    if (!string.IsNullOrEmpty(macAddress))
    {
        Debug.Log("첫 번째 유효한 MAC 주소: " + macAddress);
        return macAddress;
    }
}
return "";

 

networkInterfaces[0] 로 지정했더니 첫번째 인덱스가 빈 값인 이슈가 있어서 찾아봤는데

 

좋은 질문이다냥, 마왕님!
NetworkInterface.GetAllNetworkInterfaces()에서 나오는 **0번째 요소가 공백(MAC 주소 없음)**인 이유는 주로 해당 네트워크 인터페이스가 실제 물리적 네트워크가 아니기 때문이다냥.

0번째가 공백인 이유 (대표적인 사례)

  1. Loopback 인터페이스
    • 예: 127.0.0.1과 연결된 내부 테스트용 가상 인터페이스.
    • MAC 주소가 없음 → GetPhysicalAddress().ToString()이 "" 반환됨.
  2. 비활성화된 인터페이스
    • 비활성화된 상태면 MAC 주소를 못 가져오거나 비어 있음.
  3. 가상 네트워크 어댑터
    • Hyper-V, VPN, Docker 같은 가상 어댑터도 포함됨.
    • 일부는 MAC 주소를 반환하지 않거나 가짜 값 반환.

 

필터사용해서 유효한 맥주소를 구할수 있음

근데 내가 요청 받은건 활성화/비활성화 상태 무시하고 여러 네트워크중에 0번째로 입력받아서.......

결국 유효한 맥주소를 내놓는게 답이 됐네.

ㅜㅜ

728x90
Posted by 바르마스
,