DnsClient.NET 是一個(gè)基于 .NET 的 高性能 DNS 協(xié)議客戶端庫,由社區(qū)開發(fā)者 MichaCo 維護(hù)。
它的優(yōu)勢(shì):
? ? 跨平臺(tái)(支持 .NET 5/6/7/8/9、.NET Framework)
? ? 支持異步 API,性能更優(yōu)
? ? 覆蓋 A、AAAA、MX、NS、CNAME、TXT、SRV 等多種記錄類型
? ? 支持自定義 DNS 服務(wù)器(例如 Google DNS 8.8.8.8)
? ? 使用簡單,API 設(shè)計(jì)直觀
安裝命令非常簡單:
dotnet add package DnsClient
??? 基本用法
1. 查詢 A 記錄(域名對(duì)應(yīng)的 IPv4 地址)
using DnsClient; var lookup = new LookupClient(); var result = await lookup.QueryAsync("www.bing.com", QueryType.A); foreach (varrecordinresult.Answers.ARecords()) { Console.WriteLine($"IP 地址: {record.Address}"); }
?? 輸出:
IP 地址: 202.89.233.101 IP 地址: 202.89.233.100
2. 查詢 MX 記錄(郵件服務(wù)器)
var lookup = new LookupClient(); var result = await lookup.QueryAsync("gmail.com", QueryType.MX); foreach (varrecordinresult.Answers.MxRecords()) { Console.WriteLine($"優(yōu)先級(jí): {record.Preference}, 郵件服務(wù)器: {record.Exchange}"); }
var lookup = new LookupClient(); var result = await lookup.QueryAsync("netshare.com", QueryType.TXT); foreach (varrecordinresult.Answers.TxtRecords()) { Console.WriteLine($"TXT: {string.Join(", ", record.Text)}"); }
using System.Net; using DnsClient; var client = new LookupClient(new NameServer(IPAddress.Parse("8.8.8.8"))); var result = await client.QueryAsync("microsoft.com", QueryType.AAAA); foreach (varrecordinresult.Answers.AaaaRecords()) { Console.WriteLine($"IPv6 地址: {record.Address}"); }