GetHostEntry ist sehr langsam

Ich habe eine WinForms app, und ich bin versucht zu bekommen, reverse DNS-Einträge für eine Liste der IP-Adressen auf dem Formular angezeigt.

Die wichtigste Frage, die ich habe, laufen in System.Net.Dns.GetHostEntry ist lächerlich langsam, besonders, wenn kein reverse-DNS-Eintrag gefunden wird. Mit geraden DNS, dieser sollte schnell sein, da der DNS-server zurück, die NXDOMAIN. Intern ruft ws2_32.dll getnameinfo(), die besagt, "Namensauflösung von Domain-Namen-System (DNS), einer lokalen hosts-Datei, oder durch andere Namensgebung Mechanismen" - also ich nehme an es ist die "andere Namensgebung Mechanismen", die es verursacht zu sein, so langsam, aber wer weiß, was die Mechanismen sind?

Dies ist im Allgemeinen unter 5 Sekunden pro IP, es sei denn, es findet ein reverse-Eintrag, und dann ist es fast sofort. Ich habe teilweise gearbeitet, um dieses mit threads, aber da ich eine große Liste, und ich kann nur laufen so viele Fäden auf einmal, es dauert noch eine Weile, bis durch Sie alle.

Gibt es einen besseren Weg zu finden, reverse DNS-Einträge an, wird schneller sein?

InformationsquelleAutor gregmac | 2009-06-15
Schreibe einen Kommentar