首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#如何在不使用WMI的情况下查询Windows服务器的记录

C#如何在不使用WMI的情况下查询Windows服务器的记录
EN

Stack Overflow用户
提问于 2015-03-23 22:49:00
回答 1查看 1.2K关注 0票数 3

有没有一种方法,我可以搜索一个Dns服务器的记录,而不使用WMI建立连接到Dns服务器使用.NET 4,5?

我在.NET 4.5中完全使用了Wmi,但发现它太慢了(即使缓存连接时也是如此)。太不一致了。一些搜索查询是2秒,而另一些则超过100秒。

据我所知,我无法进一步优化查询。

代码语言:javascript
复制
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记录名-堆栈溢出

DNS域/区域- com

DNS记录值- 198.252.206.140

DNS记录类型- A/AAAA/CNAME/PTR

DNS记录ttl - 3600

即使它返回所有具有相同fqdn但值不同的记录,因为它是一个不同的记录类型,这是很好的,我可以手动过滤结果的类型,我正在寻找。

我发现的最接近的东西是Linux挖掘,但这必须在windows服务器上的.net中完成。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-02-17 22:00:01

如果您可以使用p/invoke,那么就会有DNSAPI库/DLL。见pinvoke.net上的DNSAPI。一些选项建议DnsQuery方法可以使用dns-缓存,也可以关闭缓存的使用。我已经成功地使用了这个API,但是我们警告说,它是一个相当低的级别。例如,如果要进行反向查找,则可能必须显式地组装查询(即对于192.168.0.1,使用PTR类型的查询"1.0.168.192.in-addr.arpa“)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29221876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档