2011-03-29 11 views
10

मेरी C# सेवा को समय-समय पर nslookup host server पर मतदान करने की आवश्यकता है। वर्तमान में यह Process उत्पन्न करता है जो बैच स्क्रिप्ट निष्पादित करता है। प्रदर्शन कारण के कारण मैं कुछ API का उपयोग करके इस चेक को करने पर विचार कर रहा हूं। लेकिन समस्या यह है कि, उदाहरण के लिए, System.Net.Dns.GetHostAddresses का उपयोग करके मैं केवल nslookup host चेक का अनुकरण कर सकता हूं, लेकिन nslookup host server (बिना सेकंड पैरा के)।"nslookup होस्ट सर्वर" कैसे करें

मैंने इसी तरह के SO प्रश्नों का समूह देखा है, लेकिन उनमें से कोई भी मेरी समस्या का समाधान नहीं कर रहा है।

nslookup host serverC# में कुछ भारी तृतीय-पेट्री लाइब्रेरी का उपयोग किए बिना करने का कोई तरीका है?

उत्तर

11

समस्या हल हो गई थी!

http://msdn.microsoft.com/en-us/library/ms682016(VS.85).aspx

देखें "महान उदाहरण यहां है" खंड

[DllImport("dnsapi", EntryPoint="DnsQuery_W", CharSet=CharSet.Unicode, SetLastError=true, ExactSpelling=true)] 
private static extern int DnsQuery([MarshalAs(UnmanagedType.VBByRefStr)]ref string pszName, QueryTypes wType, QueryOptions options, int aipServers, ref IntPtr ppQueryResults, int pReserved); 
[DllImport("dnsapi", CharSet=CharSet.Auto, SetLastError=true)] 
private static extern void DnsRecordListFree(IntPtr pRecordList, int FreeType); 

... 
0

मुझे यकीन नहीं है कि फ्रेमवर्क का उपयोग करके इसे कैसे किया जाए क्योंकि मुझे कभी भी स्थानीय मशीन कॉन्फ़िगरेशन में निर्दिष्ट DNS सर्वर का उपयोग करने की आवश्यकता नहीं है। लेकिन आप this लाइब्रेरी को आज़मा सकते हैं। मैंने इसका कभी भी उपयोग नहीं किया है, लेकिन जहां तक ​​मैं इसे बता सकता हूं, आपको होस्ट होस्ट नाम को हल करने में उपयोग करने के लिए एक DNS सर्वर निर्दिष्ट करने की अनुमति देगा।

1

मैंने इसे थोड़ी देर पहले देखा। मानक वर्ग पुस्तकालयों में यह संभव नहीं है, इसलिए आपको इसे ठीक से करने के लिए बाहरी घटक का उपयोग करना होगा।

आपके लिए कई मुफ्त और भुगतान विकल्प उपलब्ध हैं। मेरा कार्यान्वयन a posting on CodeProject पर आधारित था, जो काफी अच्छी तरह से काम करता था। DNS Client Library for .NET (kprobst द्वारा भी उल्लेख किया गया) मेरा पूरा होने के बाद जारी किया गया था, या मैं इसे शुरू में उपयोग करता था।

संबंधित मुद्दे