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

6

我正在尝试将我的应用移植到 .NET Core。目前它使用 ArSoft.Tools NuGet 包来查找 MX 记录,但是这个包与 Core 不兼容。

在 Core 中查找 MX 记录的最佳方法是什么?

2个回答

10

由于没有其他支持.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。 但在那之前,您必须使用某个库或编写大量代码;)


谢谢,我会在有时间的时候尝试一下,因为这将让我能够移植到 .net core。 - Guerrilla
这个救了我的一天。我之前在CMD窗口使用nslookup检查,但在Azure中不是一个选项 :) - ibrahimozgon

6

如果您需要一个简单的通用选项,谷歌提供了一种基于DNS-over-HTTP的服务,它会自动处理DNSSEC并返回一个简单的JSON响应以响应HTTP GET请求。

用户界面: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
  ]
}

只是补充一下,谷歌的文档在这里(https://developers.google.com/speed/public-dns/docs/doh)。所提到的IANA DNS记录在这里(https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml)。 - 0909EM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接