라이선스 체크에 적용하기 위해 맥어드레스(Mac Address) 비교 함수를 공유해본다.
CPP
BOOL [CLASS]::OnCheckAddress(CString &strMacAddr)
{
// MAC Address를 구한다.
BOOL bResult = FALSE;
CString strMacOri;
strMacOri = strMacAddr;
if (g_Pinfo!=NULL)
delete (g_Pinfo);
unsigned long nError;
nError = GetAdaptersInfo(g_Pinfo,&g_Len);
if (nError==0)
{
strMacAddr.Format("%02X%02X%02X%02X%02X%02X",g_Pinfo->Address[0],g_Pinfo->Address[1],g_Pinfo->Address[2],g_Pinfo->Address[3],g_Pinfo->Address[4],g_Pinfo->Address[5]);
bResult = TRUE;
}
if (nError==ERROR_NO_DATA)
{
bResult = FALSE;
}
if (nError==ERROR_NOT_SUPPORTED)
{
bResult = FALSE;
}
if (nError==ERROR_BUFFER_OVERFLOW)
{
g_Pinfo= (PIP_ADAPTER_INFO)malloc(g_Len);
nError = GetAdaptersInfo(g_Pinfo,&g_Len);
if (nError==0)
{
if (g_Pinfo!=NULL)
{
strMacAddr.Format("%02X%02X%02X%02X%02X%02X",g_Pinfo->Address[0],g_Pinfo->Address[1],g_Pinfo->Address[2],g_Pinfo->Address[3],g_Pinfo->Address[4],g_Pinfo->Address[5]);
bResult = TRUE;
}
}
}
if(strMacAddr==strMacOri)
bResult = TRUE;
else
bResult = FALSE;
return bResult;
}