Mit diesen beiden Funktionen lässt sich der lokale DNS Cache auslesen und leeren. Wie im Beispielscript gezeigt lässt sich mit ihnen zum Beispiel nachvollziehen welche Webseiten am Computer aufgerufen wurden.
Spoiler anzeigen
Local $sHistory = ";"
[/autoit] [autoit][/autoit] [autoit]While True
$aCache = _ReadDNSCache()
If Not @error Then
For $url In $aCache
If Not StringInStr($sHistory, ";" & $url & ";") Then
$sHistory &= $url & ";"
ConsoleWrite($url & @LF)
EndIf
Next
_ClearDNSCache()
EndIf
Sleep(2048)
WEnd
Func _ReadDNSCache()
Local $sOutput = "", $aResults
$iPID = Run("cmd.exe /c ipconfig /displaydns", "", @SW_HIDE, 4 + 2)
Do
Sleep(10)
$sOutput &= StdoutRead($iPID, False, False)
Until @error
$aResults = StringRegExp($sOutput, "\r\n (.+?)\r\n -{40}\r\n", 3)
If IsArray($aResults) Then Return $aResults
SetError(1)
EndFunc ;==>_ReadDNSCache
Func _ClearDNSCache()
RunWait('cmd.exe /c ipconfig /flushdns >nul', @TempDir, @SW_HIDE)
EndFunc ;==>_ClearDNSCache
Um dieses Beispiel zu testen: Script starten und in einem Webbrowser eine beliebige URL aufrufen. Ist die URL noch nicht in der Liste wird sie in der Konsole ausgegeben.