프로그래밍

DNS Cache 캐시 도메인 조회

friday13th 2011. 6. 22. 17:07

DNS 캐시에서 도메인이 존재하는지 아래 함수로 체크할 수 있다.


BOOL DoesExistInDNSCache(const char *szDomain)
{
 BOOL bFound = FALSE;
 HMODULE hMod = LoadLibrary("dnsapi.dll");
 if (hMod)
 {
  FN_DNS dns = (FN_DNS)GetProcAddress(hMod, "DnsGetCacheDataTable");
  if (dns)
  {
   DNSCACHEENTRY *pEntry = NULL;
   dns(&pEntry);
   while(pEntry)
   {    
    if (stricmp(pEntry->pszName, szDomain)==0)
    {
     bFound=TRUE;
     break;
    }
    
    pEntry= pEntry->pNext;
   }
  }
  FreeLibrary(hMod); 
 }
 return bFound;
}


도메인 캐시를 삭제하기 위해서는 커맨드창에서 ipconfig /flushdns 를 치면 된다.
도메인 캐시를 보기 위해서는 ipconfig /displaydns