HNSDoH

HNSDoH is a public DNS resolver that supports Handshake domains

HNSDoH provides a public DNS resolver with Handshake support available from multiple IP addresses for stability. You can get an up to date list of IP addresses from the HNSDoH website.

Once you've configured HNSDoH you can visit Handshake domains directly in your browser (i.e. try visiting nathan.woodburn/ once you've configured HNSDoH). You can also use HNSDoH programmatically in applications to query Handshake domains just like you would use a traditional DNS resolver like Cloudflare's 1.1.1.1 or Google's 8.8.8.8.

dig @hnsdoh.com nathan.woodburn
dig @hnsdoh.com hnsdoh TXT

DNS-over-HTTPS (DoH)

HNSDoH offers DNS-over-HTTPS resolvers with support for wireformat queries available at:

https://hnsdoh.com/dns-query

You can use knot dns utils to query HNSDoH easily:

kdig @hnsdoh.com +https nathan.woodburn
kdig @hnsdoh.com +https hnsdoh TXT

You can use curl's DoH flag to query Handshake endpoints in shell scripts easily:

curl --doh-url https://hnsdoh.com/dns-query http://hnsdoh/

DNS-over-TLS (DoT)

HNSDoH also offers DNS-over-TLS resolvers available at: hnsdoh.com:853

kdig @hnsdoh.com +tls nathan.woodburn
kdig @hnsdoh.com +tls hnsdoh TXT

Using HNSDoH in Node.js

Here's an example on how to query the DoH resolver in Node.js. Note that you must install the dohjs package first.

npm i dohjs
const doh = require('dohjs');

const resolver = new doh.DohResolver('https://hnsdoh.com/dns-query');

const getTxt = async (name) => {
	const response = await resolver.query(name, 'TXT');
	console.log(name)
	if(response.answers.length > 0){
		response.answers.forEach(ans => console.log(ans.data.toString()));
	}else{
		console.log('---')
	}
};

(async() => {
	await getTxt('hnsdoh');
	await getTxt('1.wdbrn');
	await getTxt('nathan.woodburn');
})()

Last updated