2017-02-04 21 views
6

प्रलेखन के आधार पर, मैं एक देखने में 1 से अधिक क्वेरी प्रकार जोड़ने में सक्षम होना चाहिए, लेकिन परिणाम हमेशा केवल 1 प्रकार है।डेल्फी इंडी IdDNSResolver सभी अनुरोध DNS वापस नहीं परिणाम

उदाहरण के लिए, मैं सेट id.QueryType: = [qtNS, क्यूटीए, qtMX]; और मुझे केवल एक रिकॉर्ड वापस मिलता है। क्यूटीए को हटाकर, मुझे 3 एनएस रिकॉर्ड वापस मिलते हैं, लेकिन कोई एमएक्स नहीं। उनमें से प्रत्येक अकेले ठीक काम करता है।

उदाहरण:

id:=TIdDNSResolver.Create(nil); 
id.Host:='8.8.8.8'; 
id.QueryType:='[qtNS, qtA, qtMX]; 
id.Resolve('car.com'); 
... 

id.QueryResult.count सिर्फ 1 है, और यह केवल एक रिकॉर्ड में शामिल है।

तो मैं कैसे 1 क्वेरी में सभी 3 प्रकार के मिल सकता है?

उत्तर

2

DNS अनुरोध RFC 1035 में वर्णित हैं। इस दस्तावेज़ के अनुसार, एक ही अनुरोध में कई सवाल भेजने की अनुमति मुझे लगता है कि क्यों यह इंडी में इस तरह से कार्यान्वित किया जाता है है यह सोचते कर रहा हूँ है।

प्रैक्सिस में, DNS सर्वर आमतौर पर इसका समर्थन नहीं करते हैं, और कई प्रश्न हैं, भले ही केवल एक ही जवाब दें। आप this post में अधिक जानकारी के लिए, और पदों वहाँ से जुड़ा हुआ पा सकते हैं।

मैं डीएनएस सर्वर मान पहले सवाल का जवाब देने हैं, इसलिए यदि आप एक से अधिक प्रकार के साथ एक सरणी गुजरती हैं, आपको सबसे कम आईडी के साथ प्रकार के लिए एक जवाब की उम्मीद कर सकता। आपके मामले में प्राथमिकता qtA > qtNS > qtMX होगी। यदि आपको उन सभी के लिए उत्तर की आवश्यकता है, तो आपको उन्हें अलग से हल करना चाहिए।

+0

विवरण के लिए धन्यवाद :) – Softtouch

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