Makaretu.Dns.New
3.1.2
dotnet add package Makaretu.Dns.New --version 3.1.2
NuGet\Install-Package Makaretu.Dns.New -Version 3.1.2
<PackageReference Include="Makaretu.Dns.New" Version="3.1.2" />
paket add Makaretu.Dns.New --version 3.1.2
#r "nuget: Makaretu.Dns.New, 3.1.2"
// Install Makaretu.Dns.New as a Cake Addin #addin nuget:?package=Makaretu.Dns.New&version=3.1.2 // Install Makaretu.Dns.New as a Cake Tool #tool nuget:?package=Makaretu.Dns.New&version=3.1.2
net-dns
DNS data model with serializer/deserializer for the wire and "master file" format.
Features
- Serialization for the wire and master file formats
- Pretty printing of messages
- Supports compressed domain names
- Supports multiple strings in TXT records
- Supports the extended 12-bit RCODE
- Future proof: handles unknown resource records and EDNS options
- Graceful truncation of messages
- A name server that answeres DNS questions
- Data models for
- RFC 1035 Domain Names (DNS)
- RFC 1183 New DNS RR Definitions
- RFC 1996 Zone Changes (DNS NOTIFY)
- RFC 2136 Dynamic Updates (DNS UPDATE)
- RFC 2845 Secret Key Transaction Authentication for DNS (TSIG)
- RFC 2930 Secret Key Establishment for DNS (TKEY RR)
- RFC 3225 Indicating Resolver Support of DNSSEC
- RFC 3599 DNS Extensions to Support IPv6
- RFC 4034 Resource Records for the DNS Security Extensions (DNSSEC)
- RFC 5001 DNS Name Server Identifier (NSID) Option
- RFC 6672 DNAME Redirection in the DNS
- RFC 6891 Extension Mechanisms for DNS (EDNS(0))
- RFC 7828 The edns-tcp-keepalive EDNS0 Option
- RFC 7830 The EDNS(0) Padding Option
- RFC 8914 Extended DNS Errors
- Targets .Net 8.0, 9.0, Framework 4.6.2, 4.8.1 and Net Standard 2.0
Getting started
Published releases are available on NuGet. To install, run the following command in the Package Manager Console.
PM> Install-Package Makaretu.Dns.New
Usage
Name Server
Create a name server that can answer questions for a zone.
using Makaretu.Dns.Resolving;
var catalog = new Catalog();
catalog.IncludeZone(...);
catalog.IncludeRootHints();
var resolver = new NameServer { Catalog = catalog };
Answer a question
var request = new Message();
request.Questions.Add(new Question { Name = "ns.example.com", Type = DnsType.AAAA });
var response = await resolver.ResolveAsync(request);
Data Model
using Makaretu.Dns
var msg = new Message
{
AA = true,
QR = true,
Id = 1234
};
msg.Questions.Add(new Question
{
Name = "emanon.org"
});
msg.Answers.Add(new ARecord
{
Name = "emanon.org",
Address = IPAddress.Parse("127.0.0.1")
});
msg.AuthorityRecords.Add(new SOARecord
{
Name = "emanon.org",
PrimaryName = "erehwon",
Mailbox = "hostmaster.emanon.org"
});
msg.AdditionalRecords.Add(new ARecord
{
Name = "erehwon",
Address = IPAddress.Parse("127.0.0.1")
});
Related projects
- net-mdns - client and server for multicast DNS
- net-udns - client for unicast DNS, DNS over HTTPS (DOH) and DNS over TLS (DOT)
- DNSSEC - What Is It and Why Is It Important?
License
Copyright © 2018 Richard Schneider (makaretu@gmail.com)
The package is licensed under the MIT license. Refer to the LICENSE file for more information.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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. net9.0 is compatible. |
.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 was computed. |
.NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 is compatible. |
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.6.2
- No dependencies.
-
.NETFramework 4.8.1
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Makaretu.Dns.New:
Package | Downloads |
---|---|
Makaretu.Dns.Multicast.New
A simple Multicast Domain Name Service based on RFC 6762. Can be used as both a client (sending queries) or a server (responding to queries). |
GitHub repositories
This package is not used by any popular GitHub repositories.