• 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
    [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    Func _ClearDNSCache()
    RunWait('cmd.exe /c ipconfig /flushdns >nul', @TempDir, @SW_HIDE)
    EndFunc ;==>_ClearDNSCache

    [/autoit]

    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.

    LG
    Christoph :)