【发布时间】:2015-03-23 22:49:00
【问题描述】:
有没有一种方法可以在不使用 WMI 的情况下搜索 Dns 服务器以获取记录,从而使用 .NET 4,5 连接到 Dns 服务器?
我在 .NET 4.5 中完全可以使用 Wmi,但发现它太慢了(即使在缓存连接时也是如此)。太不协调了。有些搜索查询需要 2 秒,而有些则超过 100 秒。
据我所知,我无法进一步优化查询。
Query: string query = "SELECT * FROM " + propertiesStruct.Table + " WHERE ContainerName = '" + domain + "' AND OwnerName ='" + name + "." + domain + "'";
所以我正在寻找一种连接到 dns 服务器的方法,按名称和域查询它以获取 dns 记录,并尽可能返回与 WMI 查询相同/相似的数据。
我查看了 .NET 4.5 System.Net.Dns 类和方法,但发现它没有提供足够的信息。 (https://msdn.microsoft.com/en-us/library/ms143998%28v=vs.110%29.aspx)
我要返回的信息是:示例 -
DNS 记录 fqdn - stackoverflow.com
DNS 记录名称 - stackoverflow
DNS 域/区域 - com
DNS 记录值 - 198.252.206.140
DNS 记录类型 - A/AAAA/CNAME/PTR
DNS 记录 ttl - 3600
即使它返回具有相同 fqdn 但值不同的所有记录,因为它是不同的记录类型,这很好,我可以手动过滤结果以查找我正在寻找的类型。
我找到的最接近的东西是 Linux dig,但这必须在 Windows 服务器上的 .net 中完成。
谢谢
【问题讨论】: