ネットワーク カードの設定の DNSServerSearchOrder プロパティを使用してサーバーの DNS 設定を取得すると、動的であることを示す値 (null など) ではなく、自動的に解決される DNS サーバーが返されます。
たとえば、DNS サーバーを「自動取得」に設定するには、次のようにします。
ManagementBaseObject newDNS = myNICManagementObject.GetMethodParameters("SetDNSServerSearchOrder");
newDNS["DNSServerSearchOrder"] = null;
ManagementBaseObject setDNS = myNICManagementObject.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
ここで、他のコマンドで「自動的に取得」に設定した後、設定されていることを確認したいと思います。
if( myNICManagementObject["DNSServerSearchOrder"] == null )
{
MessageBox.Show("DNS Servers Set to Dynamic!");
}
ただし、上記のコードは期待どおりに null を返しません (メッセージボックスもポップアップしません)。代わりに、ISP から動的に把握する DNS サーバーを返します。
DNS サーバーが「自動取得」に設定されていることをプログラムで判断する方法はありますか?