Visual Studio 6Windows VistaWindows 2003Windows 2000Visual C++ 6.0Windows XPMFCIntermediateDevVisual StudioWindowsC++
CDNS 1.0 - An MFC DNS class
An MFC implementation of a DNS class, it can retrieve multiple IPs and hostnames.
Introduction
I needed to use DNS lookups in a little Internet app I was using, and couldn't find a manageable solution. So I created one.
What are DNS lookups and why would you use one?
DNS stands for Domain Name Server/Service. It is the method which all browsers use to resolve hostnames (www.codeproject.com, for example) into IP addresses they can connect to.
How does this code work?
In my class, I have used a few Winsock functions to do the lookups, mainly GetHostByName
to fill the hostent
structure with information. The basic process is:
WSAStartup
to initialize.GetHostByName
to fill thehostent
structure.- Check if any information was retrieved.
- If so, loop through the returned IPs and hostnames and add them to an array.
WSACleanup
to end the process.
Using the class
The main three functions that will be used are:
SetHostname
DoDNSLookup
GetIPAt
An example of retrieving a hostname's primary IP is:
// Define a CDNS object CDNS dnsObj; // Set the hostname dnsObj.SetHostname("www.google.be"); // Do the DNS lookup BOOL doLookup = dnsObj.DoDNSLookup; if (doLookup) { // Retrieve the IP CString thisIP = dnsObj.GetIPAt(0); }
Of course, the class retrieves multiple IPs, so you'll need to do a loop to get them all. Here's an example:
// Define a CDNS object CDNS dnsObj; // Set the hostname dnsObj.SetHostname("www.google.be"); // Do the DNS lookup BOOL doLookup = dnsObj.DoDNSLookup; if (doLookup) { for (int i = 0; i <= dnsObj.GetNumberOfIP(); i++) { CString thisIP = dnsObj.GetIPAt(i); // Do something with the IP } }
History
- 1.0
- 22nd May, 2005: First public release.