2012-02-22 17 views
1

どのように私はプログラム的にDNSサーバが明示的にWindows 7で定義されているかどうかを検出することができますDNSサーバーが.netでプログラムで指定されているかどうかを検出するにはどうすればよいですか?

enter image description here

静的IPアドレス指定がIPv4InterfaceProperties::IsDhcpEnabledを用いて同定することができるが、私はDNSの同様の設定を見つけることができません。

私はIPInterfaceProperties::IsDnsEnabledIPInterfaceProperties::IsDynamicDnsEnabledを試しましたが、Windowsダイアログで設定を変更するとどちらも変化しないようです。

私が書いている単体テストのセットアップ/分解を実行できるように、この情報を取得する必要があります。

私はまたIPInterfaceProperties::DnsAddressesを試しました。これは、静的に指定されたアドレスを一覧表示します。指定されていない場合は、ネットワークから取得するように見えます(DHCPとDNSサーバーが動作しています)。以前に動的に行うように設定されていた場合は、ティアダウン方式でDNSサーバーを明示的に設定する必要はありません。

+0

ええと。 *ユニットテストにWindowsのネットワークコードのテストが含まれているのはなぜですか?私はそれが合理的に頑丈であることを理解しており、既にテストされている可能性があります。 –

+0

Windowsネットワーキングコマンドが動作するかどうかはテストしていません。私たちにはデバイスが内蔵されており、これらのコマンドを使って、デバイスのIPアドレスを最初に起動するときやユーザーが要求したときに変更します。単体テストでは、Windowsのネットワーク呼び出しをラップするコードが動作していることを確認しています。したがって、ユーザーが新しいIPアドレスへの変更を要求した場合、そのIPアドレスが正しいことを確認する必要があります。 –

+0

あなたはこの情報を.NET呼び出しから取得するつもりはありません。 IsDynamicDnsEnabledは別のことを意味します。私は関連性も理解していません。ちょうど住所を(どちらの方法で)持っていても、それが正しいかどうかはまったく言いません。名前の付いたアドレスを解決して、DNSの設定が正しいかどうかを確認するだけです。 –

答えて

0

まあ、それは純粋な.NETソリューションではありませんが、我々は実行する場合:

netsh -c interface dump > current_network_settings.txt 

試験前と:

netsh -f current_network_settings.txt 

テストが実行された後、我々は戻ってどこにする必要があります開始しました。

関連する問題