4

如何使用 c++ 从 ip 配置中获取 windows dns 后缀 serach 列表?(.NET <= 3.5)

4

1 回答 1

4

您可以从注册表中获取它们。

如果从网络控制面板设置:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\SearchList

如果由组策略设置:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\SearchList

使用Registry 类读取,可以使用相同的类,但是,您需要管理员权限才能这样做。

C# 使用管理和 WMI 类:

ManagementObjectSearcher q= new ManagementObjectSearcher("SELECT ServiceName,DNSDomainSuffixSearchOrder FROM Win32_NetworkAdapterConfiguration");// WHERE DNSDomainSuffixSearchOrder IS NOT NULL");
var qc= q.Get();

foreach (ManagementObject mo in qc)
{
    if ( mo.Properties["DNSDomainSuffixSearchOrder"] != null)
    {
        var s = mo.Properties["DNSDomainSuffixSearchOrder"];
        if (s.Value != null)
        {
            Console.WriteLine(mo["ServiceName"]);
            string[] sfxNames = s.Value as string[];
            foreach (string sx in sfxNames)
            {
                Console.WriteLine(sx);
            }
        }
    }
} 
于 2013-04-23T13:46:51.190 回答