DnsClient 1.7.0

The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org. Prefix Reserved
.NET 5.0 .NET Standard 1.3 .NET Framework 4.5
dotnet add package DnsClient --version 1.7.0
NuGet\Install-Package DnsClient -Version 1.7.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DnsClient" Version="1.7.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DnsClient --version 1.7.0
#r "nuget: DnsClient, 1.7.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install DnsClient as a Cake Addin
#addin nuget:?package=DnsClient&version=1.7.0

// Install DnsClient as a Cake Tool
#tool nuget:?package=DnsClient&version=1.7.0

DnsClient.NET

Build Status Code Coverage NuGet NuGet

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
  • 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 5 SDK installed. Just clone the repository and open the solution in Visual Studio 2019.

Examples

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp1.0 netcoreapp1.1 netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netstandard2.0 netstandard2.1
.NET Framework net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen30 tizen40 tizen60
Universal Windows Platform uap uap10.0
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (101)

Showing the top 5 NuGet packages that depend on DnsClient:

Package Downloads
MongoDB.Driver.Core

Core Component of the Official MongoDB .NET Driver.

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.

SIPSorcery

Real-time communications library with full support for the Session Initiation Protocol (SIP) and WebRTC. No wrappers and no native libraries required.

GitHub repositories (39)

Showing the top 5 popular GitHub repositories that depend on DnsClient:

Repository Stars
BeyondDimension/SteamTools
🛠「Watt Toolkit」是一个开源跨平台的多功能 Steam 工具箱。
ServiceStack/ServiceStack
Thoughtfully architected, obscenely fast, thoroughly enjoyable web services for all
win-acme/win-acme
A simple ACME client for Windows (for use with Let's Encrypt et al.)
ldqk/Masuit.Tools
包含一些常用的操作类,大都是静态类,加密解密,反射操作,权重随机筛选算法,分布式短id,表达式树,linq扩展,文件压缩,多线程下载和FTP客户端,硬件信息,字符串扩展方法,日期时间扩展操作,中国农历,大文件拷贝,图像裁剪,验证码,断点续传,集合扩展、Excel导出等常用封装。诸多功能集一身,代码量不到2MB!
BornToBeRoot/NETworkManager
A powerful tool for managing networks and troubleshoot network problems!
Version Downloads Last updated
1.7.0 44,974 10/23/2022
1.6.1 3,761,475 6/10/2022
1.6.0 4,701,690 1/30/2022
1.5.0 1,501,861 6/20/2021
1.5.0-beta-20210612.7 977 6/12/2021
1.5.0-beta-20210522.7 441 5/22/2021
1.4.0 19,872,261 2/14/2021
1.4.0-beta-20200912.4 14,701 9/12/2020
1.4.0-beta-20200801.7 45,762 8/1/2020
1.3.2 2,364,010 5/13/2020
1.3.2-beta-20200512.2 337 5/12/2020
1.3.1 24,317,920 3/31/2020
1.3.0 314,731 3/17/2020
1.3.0-beta-20200316.3 601 3/16/2020
1.3.0-beta-20200314.3 457 3/14/2020
1.3.0-beta-20200311.4 1,051 3/11/2020
1.2.0 27,204,080 8/15/2018
1.1.1 299,775 6/13/2018
1.1.0 13,825 6/4/2018
1.0.7 14,380,599 5/1/2017
1.0.6 15,991 4/5/2017
1.0.5 9,193 3/3/2017
1.0.4 1,254 2/23/2017
1.0.3 4,213 1/21/2017
1.0.2 1,199 1/16/2017
1.0.2-beta-1080 966 1/10/2017
1.0.1 41,973 12/31/2016
1.0.1-beta-1033 964 12/31/2016
1.0.1-beta-1030 969 12/31/2016
1.0.0 1,955 12/29/2016
1.0.0-beta-1017 1,108 12/7/2016
1.0.0-beta-1014 1,104 11/27/2016
1.0.0-beta-1011 1,006 11/24/2016
1.0.0-beta-1005 1,104 11/22/2016