문제

내가 작업하는 프로그램은 Windows RPC API에 의해 생성 된 UUID에 UUIDCreateseQuential ()에 의해 생성 된 UUID에 기본 이더넷 어댑터의 MAC 주소가 포함된다고 가정합니다. 이 가정이 정확합니까, 아니면 Mac 주소를 얻기 위해 다른 방법을 사용해야합니까?

도움이 되었습니까?

해결책

나는 이것에 의존하지 않을 것입니다. UUIDCreatesequential이 MAC 주소를 가지고있는 유일한 이유는 UUID가 네트워크 전체에서 고유하다는 것을 보장하려고한다는 것입니다. 또한 왜 그렇게 이상한 방법을 사용하여 Mac 주소를 얻습니까? WMI를 사용하십시오 실제로 UUID 생성 기능의 부작용 대신 MAC 주소를 요청하십시오.

다른 팁

이것은 유효한 가정 인 것 같습니다. 문서 MSDN 구체적으로 여기에는 기계의 이더넷 카드 주소가 포함되어 있다고 말합니다. 멀티 카드 시나리오에 대해서는 언급하지 않지만 기본 카드를 선택하는 것은 논리적 인 도약 인 것 같습니다.

관리 코드를 작성하는 경우 NetworkInterface 수업과 전화 GetAllNetworkInterfaces(). 또는 C ++ 코드에서 전화하십시오 GetAdaptersInfo, 이것이 관리 된 구현이 사용하는 것입니다.

설사 UuidCreateSequential 이를 위해 작동합니다. 정보를 얻는 것은 매우 모호한 방법이며, 하나 이상의 어댑터가있는 컴퓨터와 같은 잠재적 인 문제를 숨 깁니다.

버전 1 UUID 만 MAC 주소를 포함하고 원래 생성기가 MAC 주소에 액세스 할 수있는 경우에만 MAC 주소를 포함합니다. 원래 생성기가 MAC 주소에 액세스 할 수없는 경우 RFC 4122의 섹션 4.5에 따라 암호적으로 안전한 임의 번호 생성기에서 공급 된 6 개의 임의 바이트를 사용했을 것입니다. 이로 인해 Mac 주소가 보장되지 않습니다. UUID에 주어진 것은 실제로 MAC 주소입니다.

대부분의 경우, UUID에서 Mac 주소를 구문 분석 해야하는 유일한 이유는 법의학 목적입니다. 예를 들어 Melissa 바이러스에 대한 Word Document Payload에 포함 된 UUID를 참조하십시오. 조사관은이 ID에서 MAC 주소를 추출하여 용의자의 1 차 네트워크 어댑터의 MAC 주소와 일치 시켰습니다.

자신의 컴퓨터의 MAC 주소를 얻으려고한다면 이에 대한 더 나은 방법이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top