如何使用 c++ 从 ip 配置中获取 windows dns 后缀 serach 列表?(.NET <= 3.5)
问问题
1617 次
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 回答