2017-02-04 26 views
6

Belgelere dayanarak, bir aramada 1'den fazla sorgu türü ekleyebilmem gerekir, ancak sonuç her zaman yalnızca 1 tiptir. Örneğin, ben id.QueryType: = [qtNS, qtA, qtMX] ayarlıyorum; ve sadece A kaydını geri alıyorum. QtA’yı kaldırdığımda 3 adet NS kaydı alıyorum, ancak MX’ler yok. Her biri yalnız çalışıyor.delphi indy IdDNSResolver istenen tüm dns sonuçlarını döndüremiyor

Örnek:

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

id.QueryResult.count sadece 1 olduğunu ve sadece A kaydını içerir.

Peki her 3 sorgunun tümünü nasıl alabilirim?

cevap

2

DNS istekleri RFC 1035'da açıklanmaktadır. Bu belgeye göre aynı talebe birden fazla soru gönderilmesine izin veriliyor, bu yüzden Indy'de bu şekilde uygulandığına inanıyorum.

Praxis'te, DNS sunucuları genellikle bunu desteklemez ve birden çok soru olsa bile yalnızca bir yanıt verir. Daha fazla bilgiyi this post adresinde ve buradan bağlantı verilen bağlantıları bulabilirsiniz.

ilk sorusunu yanıtlamak için DNS sunucularını varsayalım, bu nedenle birden çok türde bir dizi iletirseniz, en düşük kimliğe sahip tür için bir yanıt bekleyebilirsiniz. Durumunuzda öncelik qtA > qtNS > qtMX olacaktır. Hepsi için cevaplara ihtiyacınız varsa, bunları ayrı ayrı çözmelisiniz.

+0

Ayrıntılar için teşekkürler :) – Softtouch

İlgili konular