DnsClient 1.8.0
Prefix Reserveddotnet add package DnsClient --version 1.8.0
NuGet\Install-Package DnsClient -Version 1.8.0
<PackageReference Include="DnsClient" Version="1.8.0" />
paket add DnsClient --version 1.8.0
#r "nuget: DnsClient, 1.8.0"
// Install DnsClient as a Cake Addin #addin nuget:?package=DnsClient&version=1.8.0 // Install DnsClient as a Cake Tool #tool nuget:?package=DnsClient&version=1.8.0
DnsClient.NET
DnsClient.NET is a simple yet very powerful and high performance open source library for the .NET Framework to do DNS lookups.
Usage
See the DnsClient site for more details and documentation.
The following example instantiates a new LookupClient
to query some IP address.
var lookup = new LookupClient();
var result = await lookup.QueryAsync("google.com", QueryType.A);
var record = result.Answers.ARecords().FirstOrDefault();
var ip = record?.Address;
Features
General
- Sync & Async API
- UDP and TCP lookup, configurable if TCP should be used as fallback in case the UDP result is truncated (default=true).
- Configurable EDNS support to change the default UDP buffer size and request security relevant records
- Caching
- Query result cache based on provided TTL
- Minimum TTL setting to overrule the result's TTL and always cache the responses for at least that time. (Even very low value, like a few milliseconds, do make a huge difference if used in high traffic low latency scenarios)
- Maximum TTL to limit cache duration
- Cache can be disabled
- Nameserver auto discovery. If no servers are explicitly configured, DnsClient will try its best to resolve them based on your local system configuration. This includes DNS servers configured via network interfaces or even via Windows specific NRPT policies.
- Multiple DNS endpoints can be configured. DnsClient will use them in random or sequential order (configurable), with re-tries.
- Configurable retry of queries
- Optional audit trail of each response and exception
- Configurable error handling. Throwing DNS errors, like
NotExistentDomain
is turned off by default - Optional Trace/Logging
Supported resource records
- A, AAAA, NS, CNAME, SOA, MB, MG, MR, WKS, HINFO, MINFO, MX, RP, TXT, AFSDB, URI, CAA, NULL, SSHFP, TLSA, RRSIG, NSEC, NSEC3, NSEC3PARAM, DNSKEY, DS, NAPTR, CERT
- PTR for reverse lookups
- SRV for service discovery.
LookupClient
has some extensions to help with that. - AXFR zone transfer (as per spec, LookupClient has to be set to TCP mode only for this type. Also, the result depends on if the DNS server trusts your current connection)
Build from Source
To build and contribute to this project, you must have the latest .NET SDKs and Visual Studio 2022 installed.
Examples
- See MiniDig's readme for what this example command line tool can do.
- More documentation and examples
- The Samples repository (there might be more in the future).
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- System.Buffers (>= 4.5.1)
-
.NETStandard 2.0
- Microsoft.Win32.Registry (>= 5.0.0)
- System.Buffers (>= 4.5.1)
-
.NETStandard 2.1
- Microsoft.Win32.Registry (>= 5.0.0)
-
net6.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (136)
Showing the top 5 NuGet packages that depend on DnsClient:
Package | Downloads |
---|---|
MongoDB.Driver.Core
Core Component of the Official MongoDB .NET Driver. |
|
Microsoft.Extensions.Configuration.AzureAppConfiguration
Microsoft.Extensions.Configuration.AzureAppConfiguration is a configuration provider for the .NET Core framework that allows developers to use Microsoft Azure App Configuration service as a configuration source in their applications. |
|
CouchbaseNetClient
The Official Couchbase .NET SDK. |
|
MongoDB.Driver.Core.signed
(Unofficial) Signed Core Component of the MongoDB .NET Driver. The containing assembly was generated by signing the officially published MongoDB.Driver.Core.dll. |
|
FenixAlliance.ACL.Dependencies
Application Component for the Alliance Business Suite. |
GitHub repositories (53)
Showing the top 5 popular GitHub repositories that depend on DnsClient:
Repository | Stars |
---|---|
BeyondDimension/SteamTools
🛠「Watt Toolkit」是一个开源跨平台的多功能 Steam 工具箱。
|
|
bitwarden/server
Bitwarden infrastructure/backend (API, database, Docker, etc).
|
|
duplicati/duplicati
Store securely encrypted backups in the cloud!
|
|
BornToBeRoot/NETworkManager
A powerful tool for managing networks and troubleshoot network problems!
|
|
ldqk/Masuit.Tools
全龄段友好的C#万能工具库,码数吐司库,包含一些常用的操作类,大都是静态类,加密解密,反射操作,权重随机筛选算法,分布式短id,表达式树,linq扩展,文件压缩,多线程下载,硬件信息,字符串扩展方法,日期时间扩展操作,中国农历,大文件拷贝,图像裁剪,验证码,断点续传,集合扩展、Excel导出等常用封装。诸多功能集一身,代码量不到2MB!
|
Version | Downloads | Last updated |
---|---|---|
1.8.0 | 156,848 | 7/1/2024 |
1.8.0-beta-20240317.9 | 3,825 | 3/17/2024 |
1.7.0 | 8,795,563 | 10/23/2022 |
1.6.1 | 54,534,156 | 6/10/2022 |
1.6.0 | 10,212,472 | 1/30/2022 |
1.5.0 | 4,170,320 | 6/20/2021 |
1.5.0-beta-20210612.7 | 1,468 | 6/12/2021 |
1.5.0-beta-20210522.7 | 652 | 5/22/2021 |
1.4.0 | 38,647,734 | 2/14/2021 |
1.4.0-beta-20200912.4 | 17,494 | 9/12/2020 |
1.4.0-beta-20200801.7 | 70,315 | 8/1/2020 |
1.3.2 | 4,993,959 | 5/13/2020 |
1.3.2-beta-20200512.2 | 506 | 5/12/2020 |
1.3.1 | 35,238,851 | 3/31/2020 |
1.3.0 | 357,213 | 3/17/2020 |
1.3.0-beta-20200316.3 | 770 | 3/16/2020 |
1.3.0-beta-20200314.3 | 641 | 3/14/2020 |
1.3.0-beta-20200311.4 | 1,222 | 3/11/2020 |
1.2.0 | 38,078,983 | 8/15/2018 |
1.1.1 | 363,463 | 6/13/2018 |
1.1.0 | 19,891 | 6/4/2018 |
1.0.7 | 18,169,004 | 5/1/2017 |
1.0.6 | 18,340 | 4/5/2017 |
1.0.5 | 14,474 | 3/3/2017 |
1.0.4 | 3,554 | 2/23/2017 |
1.0.3 | 20,286 | 1/21/2017 |
1.0.2 | 3,516 | 1/16/2017 |
1.0.2-beta-1080 | 3,118 | 1/10/2017 |
1.0.1 | 50,530 | 12/31/2016 |
1.0.1-beta-1033 | 3,091 | 12/31/2016 |
1.0.1-beta-1030 | 3,199 | 12/31/2016 |
1.0.0 | 5,911 | 12/29/2016 |
1.0.0-beta-1017 | 3,456 | 12/7/2016 |
1.0.0-beta-1014 | 3,380 | 11/27/2016 |
1.0.0-beta-1011 | 3,325 | 11/24/2016 |
1.0.0-beta-1005 | 3,278 | 11/22/2016 |