아래의 코드는 윈도우즈 환경에서 "Windows.h" 헤더파일에 포함된 API를 사용하여 장치의 맥 주소를 출력하는 과정을 나타냅니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 |
#include <stdio.h>
#include <Windows.h>
#include <assert.h>
#include <IPHlpApi.h>
#pragma comment(lib, "iphlpapi.lib")
IP_ADAPTER_INFO* GetNetworkAdaptersInfo()
{
DWORD dwBufLen = 0;
DWORD dwStatus = GetAdaptersInfo(NULL, &dwBufLen);
assert(dwStatus == ERROR_BUFFER_OVERFLOW);
IP_ADAPTER_INFO* pAdapterInfo = (IP_ADAPTER_INFO*)malloc(dwBufLen);
dwStatus = GetAdaptersInfo(pAdapterInfo, &dwBufLen);
assert(dwStatus == ERROR_SUCCESS);
if (dwStatus == ERROR_SUCCESS)
return pAdapterInfo;
else
{
free(pAdapterInfo);
return NULL;
}
}
void DisplayAllMacAddress(IP_ADAPTER_INFO* pAdapterInfo)
{
const int MAC_ADDRESS_LENGTH = 6;
while (pAdapterInfo != NULL)
{
if (pAdapterInfo->Type == MIB_IF_TYPE_ETHERNET)
{
printf("어댑터 이름:%s\n", pAdapterInfo->AdapterName);
printf("맥 주소: ");
for (int i = 0; i < MAC_ADDRESS_LENGTH; i++)
{
printf("%x ", pAdapterInfo->Address[i]);
}
printf("\n");
}
pAdapterInfo = pAdapterInfo->Next;
}
}
void main()
{
IP_ADAPTER_INFO* pAdaptersInfoList = GetNetworkAdaptersInfo();
DisplayAllMacAddress(pAdaptersInfoList);
free(pAdaptersInfoList);
} |
cs |
'컴퓨터 공학 > C++' 카테고리의 다른 글
C++ exit()와 quick_exit()의 차이점 (0) | 2019.05.24 |
---|---|
c++ unordered_map 사용 예시 (0) | 2019.04.06 |
[c/c++] Boost 주요 기능 정리 (0) | 2018.09.12 |
C언어 - rand()를 이용한 난수 생성 (0) | 2018.09.12 |
데이터의 분포를 출력하는 소스 코드 (C언어) (0) | 2017.06.02 |