Frage zu system.net.dns

19/02/2010 - 20:17 von Betje van Vlack | Report spam
ich mal wieder

habe ein kleines programm gebaut, was unteranderem dns abfragen mit
system.net.dns.GetHostEntry macht. Soweit funzt das ganz gut.

Jetzt habe ich das Problem, dass sich die IP hinter den aufzulösenden Namen
oft àndert. Das kann wirklich oft sein. Im schlimmsten Fall ca. alle 10
Sekunden (für Blacklisten)

Und dns.GetHostEntry cached die Abfragen.

Jetzt habe ich nach langem suchen das hier gefunden (was den selben effekt
wie ein ipconfig /flushdns hat)

<DllImport("dnsapi.dll", EntryPoint:="DnsFlushResolverCache")> _
Private Shared Function DnsFlushResolverCache() As UInt32
End Function

das blöde ist nur, dass sich .net nicht dafür interessiert, ob ich den cache
leere oder nicht. Er cached trotzdem für eine Minute müsste das sein. Und
das üble ist, dass der Cache sogar den Neustart des Programms oder Threads
überlebt. Scheint also aus dem Framework zu kommen.

Also frage: Kann ich system.net.dns irgendwie disposen oder den cache vom
Framework flushen? Habe nichts entsprechendes gefunden.

die olle gethostbyname Lib "WSOCK32.DLL" aus VB6 zeiten bemerkt den Flush,
aber ich möchte doch soviel wie möglich dem Framework überlassen, wenn es
irgendwie geht


Grüße
betje
 

Lesen sie die antworten

#1 Betje van Vlack
19/02/2010 - 20:41 | Warnen spam
aso ja, es hat übrigens auch keinen effekt, wenn ich den DNS-Client Dienst
beende und wieder starte.

Grad zufàllig noch zum Thema entdeckt:

http://209.85.129.132/search?q=cache:f8rr3LRYydMJ:www.experts-exchange.com/Programming/Languages/.NET/.NET_Framework_1.x/Q_24715488.html+http://www.experts-exchange.com/Pro...&gl=de

Ähnliche fragen