Makaretu.Dns.New
3.0.2
See the version list below for details.
dotnet add package Makaretu.Dns.New --version 3.0.2
NuGet\Install-Package Makaretu.Dns.New -Version 3.0.2
<PackageReference Include="Makaretu.Dns.New" Version="3.0.2" />
paket add Makaretu.Dns.New --version 3.0.2
#r "nuget: Makaretu.Dns.New, 3.0.2"
// Install Makaretu.Dns.New as a Cake Addin #addin nuget:?package=Makaretu.Dns.New&version=3.0.2 // Install Makaretu.Dns.New as a Cake Tool #tool nuget:?package=Makaretu.Dns.New&version=3.0.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 6.0, 8.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 | 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. |
-
net6.0
- No dependencies.
-
net8.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.