ipconfig的C语言实现(4)

DNS_STATUS status;              //Return value of  DnsQuery_A() function.
    PDNS_RECORD pDnsRecord;
 int assignBuffLenght;
 assignBuffLenght=(sizeof(DNS_RECORD))*Max;
 pDnsRecord=(DNS_RECORD*)malloc(assignBuffLenght);
 memset(pDnsRecord,0,assignBuffLenght);


 if (WSAStartup(MAKEWORD(2,1),&wsaData)) //调用Windows Sockets DLL
 {
  printf("Winsock无法初始化!\n");
  WSACleanup();
 
 }
 
 memset(hostname, 0, 256);
 iRet = gethostname(hostname, sizeof(hostname));
 if(iRet != 0 )
 {
  printf( "get hostname error:%d\n", iRet);
 }
 printf("%s\n", hostname);


 LPSTR pOwnerName=hostname;

// Calling function DnsQuery to query Host or PTR records 
    status = DnsQuery(pOwnerName,                //Pointer to OwnerName.
                        DNS_TYPE_A,                      //Type of the record to be queried.
                        DNS_QUERY_STANDARD,    // Bypasses the resolver cache on the lookup.
                        NULL,                  //Contains DNS server IP address.
                        &pDnsRecord,                //Resource record that contains the response.
                        NULL);                    //Reserved for future use.

//  printf("The host name is %s  \n",(pDnsRecord->Data.PTR.pNameHost));
 while(pDnsRecord){
   printf("The host name is  %s \n",pDnsRecord->pName);
   printf("the type is %d \n",pDnsRecord->wType);
   printf("the lenght of data is %d \n", pDnsRecord->wDataLength);
   printf(" the time to live is  %d \n", pDnsRecord-> dwTtl);
   printf("the lenght of data id %d \n", pDnsRecord-> dwReserved);

pDnsRecord=pDnsRecord->pNext;
 }
 
 
printf("dnsCache print over");
}
else
{
printf("ilegal code");

}

}


void DoFlushDns(bool){


printf("relizing config/flushdns!");

}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/57fda19319241a422019eec4f90ad986.html