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

How to lookup mx records in dot net core?

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

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

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

尝试DnsClient.NEThttps://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 草稿。但在那之前,您必须使用一些库或编写大量代码 ;)

对于一个简单的通用选项,Google 提供一个 DNS-over-HTTP 服务,自动处理 DNSSEC 和 returns 一个简单的 JSON 对 HTTP GET 请求的响应。

UI: 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
  ]
}