我正在尝试将我的应用移植到 .NET Core。目前它使用 ArSoft.Tools NuGet 包来查找 MX 记录,但是这个包与 Core 不兼容。
在 Core 中查找 MX 记录的最佳方法是什么?
我正在尝试将我的应用移植到 .NET Core。目前它使用 ArSoft.Tools NuGet 包来查找 MX 记录,但是这个包与 Core 不兼容。
在 Core 中查找 MX 记录的最佳方法是什么?
由于没有其他支持.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。 但在那之前,您必须使用某个库或编写大量代码;)
如果您需要一个简单的通用选项,谷歌提供了一种基于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
]
}