Makaretu.Dns.New 3.0.1

dotnet add package Makaretu.Dns.New --version 3.0.1
NuGet\Install-Package Makaretu.Dns.New -Version 3.0.1
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="Makaretu.Dns.New" Version="3.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Makaretu.Dns.New --version 3.0.1
#r "nuget: Makaretu.Dns.New, 3.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Makaretu.Dns.New as a Cake Addin
#addin nuget:?package=Makaretu.Dns.New&version=3.0.1

// Install Makaretu.Dns.New as a Cake Tool
#tool nuget:?package=Makaretu.Dns.New&version=3.0.1

net-dns

Build Version docs

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

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") 
});

  • 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 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 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.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.

Version Downloads Last updated
3.0.1 12,763 4/30/2023
3.0.0 247 4/13/2023

Added support for RFC 8914.
Fix a label encoding bug that could generate invalid labels.