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 the hostent
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:
CDNS dnsObj;
dnsObj.SetHostname("www.google.be");
BOOL doLookup = dnsObj.DoDNSLookup;
if (doLookup)
{
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:
CDNS dnsObj;
dnsObj.SetHostname("www.google.be");
BOOL doLookup = dnsObj.DoDNSLookup;
if (doLookup)
{
for (int i = 0; i <= dnsObj.GetNumberOfIP(); i++)
{
CString thisIP = dnsObj.GetIPAt(i);
}
}
History
- 1.0
- 22nd May, 2005: First public release.