2015-05-27 31 views
0

在Visual Basic中獲取DNS緩存並返回最近解析的域的最佳方式是什麼?我只需要域名來比較他們的名單。在vb.net中獲取DNS緩存並返回域

Function GetDnsCache() 
    Dim DNSCache As New Process 
    DNSCache.StartInfo.FileName = "ipconfig" 
    DNSCache.StartInfo.Arguments = "/displaydns " 
    DNSCache.StartInfo.UseShellExecute = False 
    DNSCache.StartInfo.RedirectStandardOutput = True 
    DNSCache. 
    DNSCache.Start() 

    MsgBox(DNSCache.StandardOutput.ReadToEnd()) 
    DNSCache.WaitForExit() 
End Function 

這不是最簡單的方法,它也需要很長時間來解析和加載。

回答

0

我會做這樣的事情。它執行ipconfig /displaydns並將輸出追加到文件中。然後,該文件被讀取行線和顯示,無論你想(我用一個列表框)

Dim Shell = CreateObject("Wscript.Shell") 
Shell.run("cmd /c ipconfig /displaydns >> C:\ipconfig.txt") 

Using reader As New IO.StreamReader("C:\ipconfig.txt") 
    While Not reader.EndOfStream 
     Dim currentLine As String = reader.ReadLine() 
     ListBox1.Items.Add(currentLine) 
    End While 
End Using 

你應該要顯示的信息爲一個MsgBox ...

Dim Shell = CreateObject("Wscript.Shell") 
Shell.run("cmd /c ipconfig /displaydns >> C:\ipconfig.txt") 
Dim reader as As New IO.StreamReader("C:\ipconfig.txt") 
MsgBox(reader.ReadToEnd.ToString, MsgBoxStyle.Information) 
+0

這個作品但我只需要域名。 – user3077596

+0

'ipconfig'不提供顯示你要找的東西的參數。它使用'/ displaydns'顯示整個DNS信息。恐怕您需要修改輸出以清除不屬於域名的內容。 – equisde