Visual Studio 6Windows VistaWindows 2003Windows 2000Visual C++ 6.0Windows XPMFC中级开发Visual StudioWindowsC++
CDNS 1.0 - 一个 MFC DNS 类
一个 MFC 实现的 DNS 类,它可以检索多个 IP 地址和主机名。
引言
我需要在我的一个小型的互联网应用中使用 DNS 查找,但找不到一个易于管理的解决方案。所以我自己创建了一个。
什么是 DNS 查找,为什么要使用它?
DNS 代表域名服务器/服务。它是所有浏览器用来将主机名(例如 www.codeproject.com)解析为它们可以连接到的 IP 地址的方法。
这段代码是如何工作的?
在我的类中,我使用了几个 Winsock 函数来执行查找,主要是 GetHostByName
来填充 hostent
结构,其中包含信息。基本过程是
WSAStartup
来初始化。GetHostByName
来填充hostent
结构。- 检查是否检索到任何信息。
- 如果是,则循环遍历返回的 IP 地址和主机名,并将它们添加到数组中。
WSACleanup
来结束进程。
使用该类
主要使用的三个函数是
SetHostname
DoDNSLookup
GetIPAt
检索主机名的主要 IP 的一个例子是
// 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); }
当然,该类检索多个 IP 地址,因此您需要进行循环才能获取所有地址。这是一个例子
// 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 } }
历史
- 1.0
- 2005 年 5 月 22 日:首次公开发布。