如何检测 DNS 服务器是否已在 .net 中以编程方式指定?

发布于 2025-01-08 00:38:00 字数 569 浏览 1 评论 0原文

如何以编程方式检测 Windows 7 中是否显式定义 DNS 服务器:

在此处输入图像描述

可以使用以下方式识别静态 ip 寻址IPv4InterfaceProperties::IsDhcpEnabled 但我找不到类似的 dns 设置。

我尝试过 IPInterfaceProperties::IsDnsEnabledIPInterfaceProperties::IsDynamicDnsEnabled 但当我通过 Windows 对话框更改设置时,这些似乎都没有改变。

我需要获取此信息,以便我可以为我正在编写的单元测试执行一些设置/拆卸。

我还尝试过IPInterfaceProperties::DnsAddresses。这会列出静态指定的地址,或者如果没有指定,它似乎会从我的网络中获取它们(我们正在运行 DHCP 和 DNS 服务器)。如果之前配置为动态设置 DNS 服务器,我不想在拆卸方法中显式设置 DNS 服务器。

How can I programmatically detect whether DNS servers are explicitly defined in windows 7:

enter image description here

Static ip addressing can be identified using IPv4InterfaceProperties::IsDhcpEnabled but I can't find a similar setting for the dns.

I've tried IPInterfaceProperties::IsDnsEnabled and IPInterfaceProperties::IsDynamicDnsEnabled but neither of those appear to change when I alter the setting via the windows dialog.

I need to get this information so that I can perform some setup / tear down for a unit test I'm writing.

I've also tried IPInterfaceProperties::DnsAddresses. This lists the addresses as statically specified or if none are specified it appears to pick them up from my network (we have DHCP and DNS servers running). I don't want to explicitely set DNS servers in the teardown method if it was previously configured to do it dynamically.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你的呼吸 2025-01-15 00:38:00

好吧,这不是一个纯粹的 .net 解决方案,但是如果我们运行:

netsh -c interface dump > current_network_settings.txt

在测试之前和:

netsh -f current_network_settings.txt

在测试执行之后,我们应该回到我们开始的地方。

Well it's not a pure .net solution, but if we run:

netsh -c interface dump > current_network_settings.txt

before the test and:

netsh -f current_network_settings.txt

after the tests have executed, we should be back to where we started.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文