【问题标题】:Get all DNS records获取所有 DNS 记录
【发布时间】:2017-05-13 22:25:57
【问题描述】:

我正在寻找一种通过网址获取所有 DNS 记录的方法。
有没有办法用 C# 做到这一点,没有任何库?

【问题讨论】:

标签: c# dns


【解决方案1】:

没有任何库真的不容易。

您可以使用本机代码,DnsQueryEx 是一个很好的起点... 不过,您需要大量代码才能使其在 C# 中运行。

为什么不直接使用现有的库?

我刚刚为 donet core /xplat 支持写了一个,例如: https://github.com/MichaCo/DnsClient.NET

使用起来非常直接

var lookup = new LookupClient();
var result = await lookup.QueryAsync("google.com", QueryType.ANY);

var record = result.Answers.ARecords().FirstOrDefault();
var address = record?.Address;

有关更多详细信息/文档,另请参阅 http://dnsclient.michaco.net

【讨论】:

  • QueryType.Any 几乎总是从不返回 AllRecords 集合中的任何记录,我是不是看错方向了
  • @Muds 依赖于 DNS 服务器,大多数公共服务器不会再为任何请求返回任何内容。查询类型正在被弃用。自托管 DNS 服务器也可以配置为不响应任何请求。
  • 非常感谢 MichaC!
  • 我在 sendgrid.com 上获得 0 条记录,其他域可能存在类似问题
猜你喜欢
  • 2015-10-10
  • 2014-06-11
  • 2013-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多