如何在 .net 中设置网络适配器的 dns 搜索后缀?

发布于 2024-07-05 21:41:53 字数 137 浏览 5 评论 0原文

我编写了一个命令行实用程序,用于检测连接了哪个网络接口,并为其设置 staitc IP 地址和 dns 服务器(通过调用 netsh)。 但是,我似乎不知道如何设置 dns 搜索后缀。 netsh 似乎无法做到这一点。 否则我该怎么做(也许是 WMI)?

I've written a command line utility that detects which network interface is connected, and sets the staitc ip address and dns servers for it (by calling netsh). However, I can't seem to figure out how to set the dns search suffixes. netsh doesnt appear capable of doing that. How do I do that otherwise (WMI perhaps)?

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

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

发布评论

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

评论(2

╰つ倒转 2024-07-12 21:41:53

我认为您必须在 Win32_NetworkAdapterConfiguration WMI 对象的 DNSDomainSuffixSearchOrder 属性中设置所需的值。

以下是在 WMI 中设置值的示例(如果您需要的话):
修改对象和对象 运行方法

I think you have to set the value(s) you want in the DNSDomainSuffixSearchOrder property of the Win32_NetworkAdapterConfiguration WMI object.

Here's and example of setting values in WMI, if you need it:
Modifying Objects & Running Methods

童话里做英雄 2024-07-12 21:41:53

dns 搜索后缀对整个机器有效,而不是对单个网络适配器有效。 您还可以从注册表获取它们:(

string searchList = "";
try 
{
    using (var reg = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(tcpSettingsSubKey))
    {
        searchList = (reg.GetValue("SearchList") as string);
    }
}
catch(Exception ex)
{
    // something went wrong
}

当机器是 AD 成员时,这不是默认的 dns 后缀)

The dns search suffixes are valid for the whole machine, not for a single network adapter. You can also get them from registry:

string searchList = "";
try 
{
    using (var reg = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(tcpSettingsSubKey))
    {
        searchList = (reg.GetValue("SearchList") as string);
    }
}
catch(Exception ex)
{
    // something went wrong
}

(This is not the default dns suffix when the machine is an AD member)

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