2016-09-19 81 views

回答

1

我最终创建了自己的库来执行此操作,因为没有其他支持.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草案。但在那之前,您必须使用一些库或编写大量代码;)

+0

谢谢,我会尝试一下,当我得到的时间,因为这将让我端口到.NET的核心。 – Guerrilla

1

Google提供了一个DNS-over-HTTP服务,它将自动处理DNSSEC并为您提供简单的JSON答案。这是使用HTTP请求查找DNS条目的简单方法。

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." 
    }, 
    // ...more repeated 
    ] 
}