8 个解决方案
#1
参考:
http://www.codeproject.com/internet/dnsquery.asp
不知道上面的例子对你有没有用,你自己看看吧!
http://www.codeproject.com/internet/dnsquery.asp
不知道上面的例子对你有没有用,你自己看看吧!
#2
http://community.csdn.net/Expert/topic/3569/3569902.xml?temp=.4955866
#3
获取mx,为什么要设置dns呢?直接取系统原本的dns不行吗
#4
http://www.prim-tech.com/list.asp?id=57
#5
帮楼主顶!关注!
#6
我的意思是怎么使得使要设置的dns对于dnsquery有效,而对于系统的其他调用dns是无效的,更不能修改系统的dns,这要如何呢
#7
你是指 DnsQuery 这个API函数吗?
DNS_STATUS WINAPI DnsQuery (
LPSTR lpstrName,
WORD wType,
DWORD fOptions,
PIP4_ARRAY aipServers,
PDNS_RECORD *ppQueryResultsSet,
PVOID *pReserved
);
这个函数的第4个参数,就是设定查询要发送到的DNS服务器,可以是一个列表
如果这个函数设置为NULL,函数就会取系统缺省设置的DNS
一般情况下,我们设置为NULL就够了
具体使用参考msdn
DNS_STATUS WINAPI DnsQuery (
LPSTR lpstrName,
WORD wType,
DWORD fOptions,
PIP4_ARRAY aipServers,
PDNS_RECORD *ppQueryResultsSet,
PVOID *pReserved
);
这个函数的第4个参数,就是设定查询要发送到的DNS服务器,可以是一个列表
如果这个函数设置为NULL,函数就会取系统缺省设置的DNS
一般情况下,我们设置为NULL就够了
具体使用参考msdn
#8
//strArray为dns地址的array
int CAboutDlg::AddDnsToIP4Array(PIP4_ARRAY &pSrvList, CStringArray &strArray)
{
pSrvList->AddrCount = strArray.GetSize();
int nCount;
for (nCount=0; nCount<(int)pSrvList->AddrCount; nCount++)
{
pSrvList->AddrArray[nCount] = inet_addr(strArray.GetAt(nCount)); //DNS server IP address
if (pSrvList->AddrArray[nCount] == INADDR_NONE)
{
MessageBox("Invalid DNS server IP address \n");
return -1;
}
}
return 1;
}
增加dns到PIP4_ARRAY结构中,DNS_STATUS DnsStatus = ::DnsQuery(pMailDomain, DNS_TYPE_MX, DNS_QUERY_BYPASS_CACHE, pSrvList, &pQueryResultsSet, NULL);pSrvList通过函数AddDnsToIP4Array获取得到
int CAboutDlg::AddDnsToIP4Array(PIP4_ARRAY &pSrvList, CStringArray &strArray)
{
pSrvList->AddrCount = strArray.GetSize();
int nCount;
for (nCount=0; nCount<(int)pSrvList->AddrCount; nCount++)
{
pSrvList->AddrArray[nCount] = inet_addr(strArray.GetAt(nCount)); //DNS server IP address
if (pSrvList->AddrArray[nCount] == INADDR_NONE)
{
MessageBox("Invalid DNS server IP address \n");
return -1;
}
}
return 1;
}
增加dns到PIP4_ARRAY结构中,DNS_STATUS DnsStatus = ::DnsQuery(pMailDomain, DNS_TYPE_MX, DNS_QUERY_BYPASS_CACHE, pSrvList, &pQueryResultsSet, NULL);pSrvList通过函数AddDnsToIP4Array获取得到
#1
参考:
http://www.codeproject.com/internet/dnsquery.asp
不知道上面的例子对你有没有用,你自己看看吧!
http://www.codeproject.com/internet/dnsquery.asp
不知道上面的例子对你有没有用,你自己看看吧!
#2
http://community.csdn.net/Expert/topic/3569/3569902.xml?temp=.4955866
#3
获取mx,为什么要设置dns呢?直接取系统原本的dns不行吗
#4
http://www.prim-tech.com/list.asp?id=57
#5
帮楼主顶!关注!
#6
我的意思是怎么使得使要设置的dns对于dnsquery有效,而对于系统的其他调用dns是无效的,更不能修改系统的dns,这要如何呢
#7
你是指 DnsQuery 这个API函数吗?
DNS_STATUS WINAPI DnsQuery (
LPSTR lpstrName,
WORD wType,
DWORD fOptions,
PIP4_ARRAY aipServers,
PDNS_RECORD *ppQueryResultsSet,
PVOID *pReserved
);
这个函数的第4个参数,就是设定查询要发送到的DNS服务器,可以是一个列表
如果这个函数设置为NULL,函数就会取系统缺省设置的DNS
一般情况下,我们设置为NULL就够了
具体使用参考msdn
DNS_STATUS WINAPI DnsQuery (
LPSTR lpstrName,
WORD wType,
DWORD fOptions,
PIP4_ARRAY aipServers,
PDNS_RECORD *ppQueryResultsSet,
PVOID *pReserved
);
这个函数的第4个参数,就是设定查询要发送到的DNS服务器,可以是一个列表
如果这个函数设置为NULL,函数就会取系统缺省设置的DNS
一般情况下,我们设置为NULL就够了
具体使用参考msdn
#8
//strArray为dns地址的array
int CAboutDlg::AddDnsToIP4Array(PIP4_ARRAY &pSrvList, CStringArray &strArray)
{
pSrvList->AddrCount = strArray.GetSize();
int nCount;
for (nCount=0; nCount<(int)pSrvList->AddrCount; nCount++)
{
pSrvList->AddrArray[nCount] = inet_addr(strArray.GetAt(nCount)); //DNS server IP address
if (pSrvList->AddrArray[nCount] == INADDR_NONE)
{
MessageBox("Invalid DNS server IP address \n");
return -1;
}
}
return 1;
}
增加dns到PIP4_ARRAY结构中,DNS_STATUS DnsStatus = ::DnsQuery(pMailDomain, DNS_TYPE_MX, DNS_QUERY_BYPASS_CACHE, pSrvList, &pQueryResultsSet, NULL);pSrvList通过函数AddDnsToIP4Array获取得到
int CAboutDlg::AddDnsToIP4Array(PIP4_ARRAY &pSrvList, CStringArray &strArray)
{
pSrvList->AddrCount = strArray.GetSize();
int nCount;
for (nCount=0; nCount<(int)pSrvList->AddrCount; nCount++)
{
pSrvList->AddrArray[nCount] = inet_addr(strArray.GetAt(nCount)); //DNS server IP address
if (pSrvList->AddrArray[nCount] == INADDR_NONE)
{
MessageBox("Invalid DNS server IP address \n");
return -1;
}
}
return 1;
}
增加dns到PIP4_ARRAY结构中,DNS_STATUS DnsStatus = ::DnsQuery(pMailDomain, DNS_TYPE_MX, DNS_QUERY_BYPASS_CACHE, pSrvList, &pQueryResultsSet, NULL);pSrvList通过函数AddDnsToIP4Array获取得到