dns - DNS library in Go

  •        90

Complete and usable DNS library. All widely used Resource Records are supported, including the DNSSEC types. It follows a lean and mean philosophy. If there is stuff you should know as a DNS programmer there isn't a convenience function for it. Server side and client side programming is supported, i.e. you can build servers and resolvers with it.

https://github.com/miekg/dns

Tags
Implementation
License
Platform

   




Related Projects

trust-dns - A Rust based DNS client, server, and resolver

  •    Rust

A Rust based DNS client and server, built to be safe and secure from the ground up. Using the ClientFuture is safe. ClientFuture is a brand new rewrite of the old Client. It has all the same features as the old Client, but is written with the wonderful futures-rs library. Please send feedback! It currently does not cache responses, if this is a feature you'd like earlier rather than later, post a request. The validation of DNSSec is complete including NSEC. As of now NSEC3 is broken, and I may never plan to support it. I have some alternative ideas for private data in the zone. The old Client has been deprecated, so please use the ClientFuture. If this is an inconvenience, I may add a convenience wrapper around ClientFuture that would match the old Client; if this is something you would like to see, please file an issue.

tenta-dns - Recursive and authoritative DNS server in go, including DNSSEC and DNS-over-TLS

  •    Go

Tenta DNS provides a DNS server suite comprising an authoritative DNS server, recursive DNS server, and NSnitch, which provides a DNS server capable of recording the IP address of requests made against it and then makes that IP available via a JSON API. Tenta DNS also provides lookups for Tor Node membership, DNS blacklist status and Geo data. Finally, Tenta DNS includes built-in BGP integration, offering single engine convenience for DNS anycasting. We welcome people to use our hosted versions of recursive resolver and NSnitch. Please see Usage, for details on how to set Tenta DNS as your default DNS resolver, or APIs, for NSnitch REST API information. Just want to use our hosted recursive resolver? We offer two options, using either OpenNIC root servers or the normal ICANN root servers.

dnsjava - DNS implementation in Java

  •    Java

dnsjava is an implementation of DNS in Java. It supports all defined record types (including the DNSSEC types), and unknown types. It can be used for queries, zone transfers, and dynamic updates. A cache is used to reduce the number of DNS queries sent. A simple tool for doing DNS lookups, a 'dig' clone and a dynamic update client are included, as well as a simple authoritative-only server.

grimd - :zap: fast dns proxy that can run anywhere, built to black-hole internet advertisements and malware servers

  •    Go

⚡️ Fast dns proxy that can run anywhere, built to black-hole internet advertisements and malware servers.Based on kenshinx/godns and miekg/dns.

getdns - A modern asynchronous DNS API https://getdnsapi.net/

  •    C

getdns is an implementation of a modern asynchronous DNS API; the specification was originally edited by Paul Hoffman. It is intended to make all types of DNS information easily available to application developers and non-DNS experts. Sophisticated uses of the DNS (things like IDNA and DNSSEC validation) require considerable application work, possibly by application developers with little experience with the vagaries of DNS.


SkyDNS - DNS service discovery for etcd

  •    Go

SkyDNS is a distributed service for announcement and discovery of services built on top of etcd. It utilizes DNS queries to discover available services. This is done by leveraging SRV records in DNS, with special meaning given to subdomains, priorities and weights.

lexicon - Manipulate DNS records on various DNS providers in a standardized way.

  •    Python

Manipulate DNS records on various DNS providers in a standardized/agnostic way. Lexicon provides a way to manipulate DNS records on multiple DNS providers in a standardized way. Lexicon has a CLI but it can also be used as a python library.

DnDns and PocketDnDns - A .NET DNS Client Resolver Library

  •    CSharp

A DNS protocol library written completely in managed code (C#). Supports common DNS records types like A, CNAME, MX, SRV, and more. Works on Windows .NET 2.0, 3., Mono 2.0, and .NET CF 2.0 for Pocket PC / Windows Mobile. Supports DNS resoluiton using both UDP and TCP protocols.

skydock - Service discovery via DNS for docker

  •    Go

Docker supports DNS based service discovery now. You should use the Docker implementation instead of this project. Skydock was built at a time when Docker did not support DNS discovery or auto registration. I'll keep the repo up for past years and as reference for others but don't use it if you have a recent version of Docker.Skydock monitors docker events when containers start, stop, die, kill, etc and inserts records into a dynamic DNS server skydns. This allows standard DNS queries for services running inside docker containers. Because lets face it, if you have to modify your application code to work with other service discovery solutions you might as well just give up. DNS just works and it works well. Also you cannot be expected to modify application code that you don't own. Passing service urls via the cli or in static config files (nginx) will not be possible if your service discovery solution requires a client library just to fetch an IP.

net-dns - Net::DNS is a DNS library written in Ruby.

  •    Ruby

Net::DNS is a DNS library written in Ruby.

external-dns - Configure external DNS servers (AWS Route53, Google CloudDNS and others) for Kubernetes Ingresses and Services

  •    Go

ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.Inspired by Kubernetes DNS, Kubernetes' cluster-internal DNS server, ExternalDNS makes Kubernetes resources discoverable via public DNS servers. Like KubeDNS, it retrieves a list of resources (Services, Ingresses, etc.) from the Kubernetes API to determine a desired list of DNS records. Unlike KubeDNS, however, it's not a DNS server itself, but merely configures other DNS providers accordingly—e.g. AWS Route 53 or Google CloudDNS.

whonow - A "malicious" DNS server for executing DNS Rebinding attacks on the fly (public instance running on rebind

  •    Javascript

A malicious DNS server for executing DNS Rebinding attacks on the fly. whonow lets you specify DNS responses and rebind rules dynamically using domain requests themselves. What's great about dynamic DNS Rebinding rules is that you don't have to spin up your own malicious DNS server to start exploiting the browser's Same-origin policy. Instead, everyone can share the same public whonow server running on port 53 of rebind.network.

dnsdiag - DNS Diagnostics and Performance Measurement Tools

  •    Python

Ever been wondering if your ISP is hijacking your DNS traffic? Ever observed any misbehavior with your DNS responses? Ever been redirected to wrong address and suspected something is wrong with your DNS? Here we have a set of tools to perform basic audits on your DNS requests and responses to make sure your DNS is working as you expect. You can measure the response time of any given DNS server for arbitrary requests using dnsping. Just like traditional ping utility, it gives you similar functionality for DNS requests.

dingo - A DNS client in Go that supports Google DNS over HTTPS

  •    Go

A DNS client (stub resolver) implemented in Go for the Google DNS-over-HTTPS. It effectively encrypts all your DNS traffic. It also supports OpenResolve by OpenDNS. The ultimate goal for the project is to provide a secure, caching DNS client that communicates with recursive DNS resolvers over encrypted channels only. For now, it resolves DNS queries over HTTP/2 in independent threads. The plans for future include better caching and support for QUIC.

Dns Changer

  •    CSharp

DnsChanger makes if simple for users to change their DNS setting to use the various open DNS such as Google DNS, Open DNS and Fool DNS. It's developed in C#.

dnscrypt-proxy - A flexible DNS proxy, with support for encrypted DNS protocols.

  •    Go

A flexible DNS proxy, with support for modern encrypted DNS protocols such as DNSCrypt v2 and DNS-over-HTTP/2. It includes all the major features from dnscrypt-proxy 1.9.5, with improved reliability, flexibility, usability and performance.

Posadis DNS Server

  •    C++

A DNS server for Unix and Windows platforms, supporting authoritative service (master/slave) as well as caching. Also featuring a graphical master file editor (mfedit), a graphical DNS query tool (dnsquery) and a DNS programming library for C++ (poslib).

dnscontrol - Synchronize your DNS to multiple providers from a simple DSL

  •    Go

DNSControl is a system for maintaining DNS zones. It has two parts: a domain specific language (DSL) for describing DNS zones plus software that processes the DSL and pushes the resulting zones to DNS providers such as Route53, CloudFlare, and Gandi. It can talk to Microsoft ActiveDirectory and it generates the most beautiful BIND zone files ever. It runs anywhere Go runs (Linux, macOS, Windows). The provider model is extensible, so more providers can be added.At Stack Overflow, we use this system to manage hundreds of domains and subdomains across multiple registrars and DNS providers.

wagl - :bee: DNS Service Discovery for Docker Swarm

  •    Go

wagl runs inside your Docker Swarm cluster and provides DNS-based service discovery (using DNS A and SRV records) and simple load balancing by rotating the list of IP addresses in DNS records. other containers in the cluster will be able to reach this container using URL http://api.swarm. It is a minimalist solution, yet handles most of the basic DNS service discovery functionality well ––but we're open to pull requests.