4
如何从ip配置使用c + +获得Windows DNS后缀serach列表? (.NET < = 3.5)如何获得Windows DNS后缀搜索列表使用c + +
如何从ip配置使用c + +获得Windows DNS后缀serach列表? (.NET < = 3.5)如何获得Windows DNS后缀搜索列表使用c + +
您可以从注册表中获取它们。
如果从网络控制面板设置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\SearchList
如果设置组策略:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\SearchList
使用Registry class to read,同一个类可以使用设置,但是,您将需要管理员权限这样做。使用管理和WMI类
C#:
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);
}
}
}
}
似乎是正确的,发现他们......但真的没有WINAPI(比其他寄存器)来了吗?像什么东西少“设置的起源”依赖? – d3r0n 2013-04-24 08:38:35
怀疑Windows和网络之间有一点断开连接。这不是正常的担心后缀,你只是要求在一个地址端点,其余的是'魔术' – Adrian 2013-04-24 14:02:15
你也可以使用WMI查询和设置,C#添加到答案,但应该很容易转换为C++ .net – Adrian 2013-04-24 14:02:58