2012-02-22 4 views
1

어떻게 프로그래밍 DNS 서버가 명시 적으로 윈도우 7에 정의되어 있는지 여부를 감지 할 수 있습니다 :.net에서 프로그래밍 방식으로 DNS 서버를 지정했는지 어떻게 알 수 있습니까?

enter image description here

IPv4InterfaceProperties::IsDhcpEnabled를 사용하여 식별 할 수 있지만이 DNS에 대한 비슷한 설정을 찾을 수없는 정적 IP 주소.

나는 IPInterfaceProperties::IsDnsEnabledIPInterfaceProperties::IsDynamicDnsEnabled을 시도했지만 윈도우 대화 상자를 통해 설정을 변경할 때 그것들도 변경되지 않습니다.

필자가 작성중인 단위 테스트를 위해 일부 설정/해제를 수행 할 수 있도록이 정보를 얻을 필요가 있습니다.

나는 또한 IPInterfaceProperties::DnsAddresses을 시도했습니다. 이 주소는 정적으로 지정된 주소를 나열합니다. 주소가 지정되어 있지 않으면 내 네트워크에서 주소를 가져 오는 것으로 나타납니다 (DHCP 및 DNS 서버가 실행 중입니다). 이전에 동적으로 구성하도록 구성된 경우 명시 적으로 DNS 서버를 teardown 방식으로 설정하고 싶지 않습니다.

+0

음. * unit * 테스트에서 Windows의 네트워크 코드 테스트가 필요한 이유는 무엇입니까? 나는 그것이 상당히 견고하고 이미 테스트를 거쳤 음을 잘 알고 있습니다 ... –

+0

우리는 Windows 네트워킹 명령이 작동하는지 테스트하려고하지 않습니다. 우리는 임베디드 장치를 가지고 있으며 우리는이 명령을 사용하여 처음 부팅 할 때 또는 사용자가 장치를 요청할 때 장치의 IP 주소를 변경합니다. 단위 테스트는 Windows 네트워킹 호출을 감싸는 코드가 작동하는지 확인합니다. 따라서 사용자가 새 IP 주소에 대한 변경을 요청하는 경우이를 확인해야합니다. –

+0

.NET 호출에서이 정보를 얻지 못할 것입니다. IsDynamicDnsEnabled는 다른 것을 의미합니다. 나는 관련성을 이해하지 못한다. 주소가 (어느 쪽이든) 있다면, 그들이 맞는지 아닌지 전혀 말하지 않는다. 명명 된 주소를 확인하여 DNS 설정이 올바른지 확인하기 만하면됩니다. –

답변

0

음이 순수 .NET 솔루션은 아니지만 경우에 우리는 실행

netsh -c interface dump > current_network_settings.txt 
검사 전

과 :

netsh -f current_network_settings.txt 

테스트를 실행 한 후, 우리는 다시 어디로해야 우리 시작되었습니다.

관련 문제