调用dnsquery之前,怎么设置dns服务器

时间:2022-03-02 14:54:22
要获取mx,但是我要设置dns,而且不能修改系统的dns,这要如何呢??????就像极星对于发mail时能设置dns,我的目的也是如此。

8 个解决方案

#1


参考:
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

#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获取得到

#1


参考:
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

#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获取得到