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
'c#' 카테고리의 다른 글
C#에서의 최적화 팁 (0) | 2025.02.21 |
---|---|
프로젝트 파일을 열 수 없습니다. .NET SDK의 8.0.200 버전에는 최소 17.8.3 버전의 MSBuild가 필요합니다. 현재 사용할 수 있는 MSBuild의 버전은 16.11.2.50704입니다. global.json에 지정된 .NET SDK를 현재 사용할 수 있는 MSBuild 버전을 필요로 하는 이전 버전으로 변경하세요. (0) | 2025.02.19 |
조건없는 값 반환 예외 처리 Linq (0) | 2025.02.17 |
Regex.Unescape() 특수문자 스트링 변경 (0) | 2025.02.12 |
String 스트링 Byte 변환 (0) | 2025.01.20 |