如何在dot net core中查找mx记录?

时间:2016-09-19 05:37:05

标签: c# dns asp.net-core .net-core mx-record

我正在尝试将我的应用移植到.net核心。它目前使用ArSoft.Tools nuget包来查找mx记录,但是这个包与核心不兼容。

在核心中查找mx记录的最佳方法是什么?

2 个答案:

答案 0 :(得分:5)

我最终创建了自己的库来执行此操作,因为没有其他支持.net-core。

尝试使用DnsClient.NET 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;

如果需要,您还可以明确指定DNS服务器。

虽然尚未支持高级记录类型或DNSSEC。

此外,也许有一天.NET库也会支持它。我正在研究API草案。但到那时,你必须使用一些库或写一大堆代码;)

答案 1 :(得分:5)

对于简单的通用选项,Google提供DNS-over-HTTP服务,该服务自动处理DNSSEC并返回对HTTP GET请求的简单JSON响应。

用户界面:https://dns.google.com/query?name=google.com&type=MX&dnssec=true

API:https://dns.google.com/resolve?name=google.com&type=MX

{
  "Status": 0,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": false,
  "CD": false,
  "Question": [
    {
      "name": "google.com.",
      "type": 15
    }
  ],
  "Answer": [
    {
      "name": "google.com.",
      "type": 15,
      "TTL": 536,
      "data": "10 aspmx.l.google.com."
    },
    // ... other answers
  ]
}