Meziantou.Framework.DnsServer 1.0.0

Prefix Reserved
dotnet add package Meziantou.Framework.DnsServer --version 1.0.0
                    
NuGet\Install-Package Meziantou.Framework.DnsServer -Version 1.0.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="Meziantou.Framework.DnsServer" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Meziantou.Framework.DnsServer" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Meziantou.Framework.DnsServer" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Meziantou.Framework.DnsServer --version 1.0.0
                    
#r "nuget: Meziantou.Framework.DnsServer, 1.0.0"
                    
#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.
#:package Meziantou.Framework.DnsServer@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Meziantou.Framework.DnsServer&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Meziantou.Framework.DnsServer&version=1.0.0
                    
Install as a Cake Tool

Meziantou.Framework.DnsServer

A DNS server library supporting multiple transport protocols with ASP.NET Core hosting integration.

Features

  • Multiple protocols: UDP, TCP, DNS over TLS (DoT), DNS over HTTPS (DoH), DNS over QUIC (DoQ)
  • All DNS record types: A, AAAA, MX, TXT, CNAME, NS, SOA, SRV, PTR, CAA, NAPTR, SVCB, HTTPS, and more
  • DNSSEC record support: DNSKEY, DS, RRSIG, NSEC, NSEC3 records
  • EDNS(0): Configurable UDP payload size, DNSSEC OK flag, extended RCODE
  • ASP.NET Core integration: Works with WebApplicationBuilder, Kestrel, and endpoint routing
  • Delegate-based handler: Minimal API-style request handling

Usage

using Meziantou.Framework.DnsServer.Hosting;
using Meziantou.Framework.DnsServer.Protocol;
using Meziantou.Framework.DnsServer.Protocol.Records;

var builder = WebApplication.CreateBuilder(args);
builder.AddDnsServer(options =>
{
    options.AddUdpListener(port: 5053);
    options.AddTcpListener(port: 5053);
});

var app = builder.Build();
app.MapDnsHandler(async (context, cancellationToken) =>
{
    var response = context.CreateResponse();
    response.ResponseCode = DnsResponseCode.NoError;

    foreach (var question in context.Query.Questions)
    {
        if (question.Type == DnsQueryType.A)
        {
            response.Answers.Add(new DnsResourceRecord
            {
                Name = question.Name,
                Type = DnsQueryType.A,
                Class = DnsQueryClass.IN,
                TimeToLive = 300,
                Data = new DnsARecordData { Address = System.Net.IPAddress.Parse("127.0.0.1") },
            });
        }
    }

    return response;
});

app.Run();

DNS over HTTPS

builder.AddDnsServer(options =>
{
    options.AddTcpListener(port: 5053);
});

var app = builder.Build();
app.MapDnsHandler(async (context, ct) => context.CreateResponse());
app.MapDnsOverHttps("/dns-query");

app.Run();

DNS over TLS

var certificate = X509Certificate2.CreateFromPemFile("cert.pem", "key.pem");
builder.AddDnsServer(options =>
{
    options.AddTlsListener(port: 8853, certificate);
});

DNS over QUIC

var certificate = X509Certificate2.CreateFromPemFile("cert.pem", "key.pem");
builder.AddDnsServer(options =>
{
    options.AddQuicListener(port: 8853, certificate);
});
Product Compatible and additional computed target framework versions.
.NET 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.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 90 3/25/2026