抓取系統的DNS設定 |
答題得分者是:RaynorPao
|
artist1002
高階會員 ![]() ![]() ![]() ![]() 發表:2 回覆:155 積分:151 註冊:2002-09-26 發送簡訊給我 |
|
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
turboted
版主 ![]() ![]() ![]() ![]() ![]() 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
這裏有一個DNS_STATUS的應用
原文在http://www.codeproject.com/internet/DNSQuery.asp
應用在smtp的host name
BOOL CGetSMTPHostName::GetSmtpHostName(CString _EmailAddress, CString& _HostName) { BOOL bRV = TRUE; _HostName.Empty(); int start = _EmailAddress.Find('@') 1; CString strDomain = _EmailAddress.Mid(start,_EmailAddress.GetLength()-start); if( ! strDomain.IsEmpty()) { // First, look in our map to see if we have looked up this SMTP // Host before m_SMTPHostIterator = m_SMTPHost.find(strDomain); if(m_SMTPHostIterator != m_SMTPHost.end()) { // Great, we've looked this one up before... _HostName = (*m_SMTPHostIterator).second; // Is it unknown??? if(_HostName == "UNK") { bRV=FALSE; _HostName.Empty(); } } else { // OK, we haven't looked this up before, so look it up DNS_RECORD* ppQueryResultsSet = NULL; DNS_STATUS statusDNS = ::DnsQuery( strDomain, DNS_TYPE_MX, DNS_QUERY_STANDARD, NULL, &ppQueryResultsSet, NULL ); if(statusDNS == ERROR_SUCCESS) { // Found the SMTP Host Name, insert it into our map _HostName = ppQueryResultsSet->Data.MX.pNameExchange; m_SMTPHost.insert(HostMapValue(strDomain,_HostName)); } else { // I have opted to place unknown domains in the map to reduce // the time that I spend looking up the domain names. You // may want to implement this differently for your usage. bRV = FALSE; DNS_STATUS theError = statusDNS; m_SMTPHost.insert(HostMapValue(strDomain,"UNK")); } } } else { // OOPS, is this a valid email address? bRV = FALSE; } return(bRV); } |
artist1002
高階會員 ![]() ![]() ![]() ![]() 發表:2 回覆:155 積分:151 註冊:2002-09-26 發送簡訊給我 |
謝謝 RaynorPao,turboted 的熱心回覆
可能是我的問題沒有問清楚...
我的問題是想要取的網路配接卡上面的TCP/IP協定中的DNS設定
並不是對DNS Server作Query的動作...
我找了一些Windows API和Winsock API好像都沒有
WMI中好像可以,但是沒辦法相容舊版的Windows
網路上查了一下資料都是從註冊表取的的
但是我測試的結果,在不同版本的Windows儲存的機碼位置不一樣
難道我要針對每一個Windows版本寫一種讀取方式嗎?
所以想要找一個可以相容不同版本的取得方法...
還是感謝先前回覆的兩位,我也會持續找資料的...希望能盡快解決
|
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 謝謝 RaynorPao,turboted 的熱心回覆 可能是我的問題沒有問清楚... 我的問題是想要取的網路配接卡上面的TCP/IP協定中的DNS設定 並不是對DNS Server作Query的動作... 我找了一些Windows API和Winsock API好像都沒有 WMI中好像可以,但是沒辦法相容舊版的Windows 網路上查了一下資料都是從註冊表取的的 但是我測試的結果,在不同版本的Windows儲存的機碼位置不一樣 難道我要針對每一個Windows版本寫一種讀取方式嗎? 所以想要找一個可以相容不同版本的取得方法... 還是感謝先前回覆的兩位,我也會持續找資料的...希望能盡快解決artist1002 你好: 應該是使用 Win32 API GetNetworkParams 可達成目的< > 請參考以下的連結文章(有完整的範例程式可以參考)< > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/getnetworkparams.asp -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
artist1002
高階會員 ![]() ![]() ![]() ![]() 發表:2 回覆:155 積分:151 註冊:2002-09-26 發送簡訊給我 |
引言:感謝RaynorPao的熱心幫助, 終於解決了這個問題 原來這就是IP Helper的SDK...我之前一直找Windows的SDK 難怪找不到, 不過也讓我學了不少東西 分享一下 關於 GetNetworkParams 的使用需要連結 iphlpapi.lib 小弟不才, 從來沒有用過lib檔案 試了半天, 才知道原來只要include進專案就可以了... 哈哈...又學會了一點小皮毛. 還有 GetNetworkParams 沒有辦法在 Windows 95 上執行 不過這不是問題, 因為使用 Windows 95 的使用者很少了 還是再一次感謝 RaynorPao 的援助引言: 謝謝 RaynorPao,turboted 的熱心回覆 可能是我的問題沒有問清楚... 我的問題是想要取的網路配接卡上面的TCP/IP協定中的DNS設定 並不是對DNS Server作Query的動作... 我找了一些Windows API和Winsock API好像都沒有 WMI中好像可以,但是沒辦法相容舊版的Windows 網路上查了一下資料都是從註冊表取的的 但是我測試的結果,在不同版本的Windows儲存的機碼位置不一樣 難道我要針對每一個Windows版本寫一種讀取方式嗎? 所以想要找一個可以相容不同版本的取得方法... 還是感謝先前回覆的兩位,我也會持續找資料的...希望能盡快解決artist1002 你好: 應該是使用 Win32 API GetNetworkParams 可達成目的< > 請參考以下的連結文章(有完整的範例程式可以參考)< > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/getnetworkparams.asp -- Enjoy Researching & Developing -- |
pcboy
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |