2012-02-22 26 views
1

如何以編程檢測是否DNS服務器在Windows 7中明確定義:如何檢測是否在.net中以編程方式指定了DNS服務器?

enter image description here

靜態IP地址可以使用IPv4InterfaceProperties::IsDhcpEnabled確定,但我找不到的DNS類似的設置。

我試過IPInterfaceProperties::IsDnsEnabledIPInterfaceProperties::IsDynamicDnsEnabled,但是當我通過windows對話框改變設置時,這些都不會改變。

我需要獲取這些信息,以便我可以爲我正在編寫的單元測試執行一些設置/拆卸操作。我也試過IPInterfaceProperties::DnsAddresses。這列出了靜態指定的地址,或者如果沒有指定地址,它似乎會從我的網絡中選取它們(我們有DHCP和DNS服務器正在運行)。我不想在拆卸方法中明確設置DNS服務器,如果它以前被配置爲動態執行的話。

+0

嗯。爲什麼一個* unit *測試包括測試windows的網絡代碼?我知道它是相當強大的,並且可能已經過測試...... – 2012-02-22 15:14:35

+0

我們並不試圖測試Windows網絡命令是否有效。我們有一個嵌入式設備,我們使用這些命令在第一次啓動或用戶請求時更改設備的IP地址。單元測試正在驗證我們圍繞windows網絡呼叫的代碼正在工作。所以如果用戶請求更改一個新的IP地址,我們需要確定它需要。 – 2012-02-22 15:55:08

+0

您不會從.NET調用中獲取此信息。 IsDynamicDnsEnabled意味着別的東西。我不明白相關性,只要有地址(無論哪種方式)都不會說任何關於它們是否正確的。只需嘗試解析指定的地址以檢查DNS設置是否正確。 – 2012-02-25 19:41:13

回答

0

那麼它不是一個純粹的.NET解決方案,但如果我們運行:

netsh -c interface dump > current_network_settings.txt 

在測試前和:

netsh -f current_network_settings.txt 

測試已經執行之後,我們應該回到我們開始。

相關問題