c#
MacAddress 구할 때 첫번째 인덱스가 공백인 버그
바르마스
2025. 4. 10. 19:00
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번째가 공백인 이유 (대표적인 사례)
- Loopback 인터페이스
- 예: 127.0.0.1과 연결된 내부 테스트용 가상 인터페이스.
- MAC 주소가 없음 → GetPhysicalAddress().ToString()이 "" 반환됨.
- 비활성화된 인터페이스
- 비활성화된 상태면 MAC 주소를 못 가져오거나 비어 있음.
- 가상 네트워크 어댑터
- Hyper-V, VPN, Docker 같은 가상 어댑터도 포함됨.
- 일부는 MAC 주소를 반환하지 않거나 가짜 값 반환.
필터사용해서 유효한 맥주소를 구할수 있음
근데 내가 요청 받은건 활성화/비활성화 상태 무시하고 여러 네트워크중에 0번째로 입력받아서.......
결국 유효한 맥주소를 내놓는게 답이 됐네.
ㅜㅜ
728x90