Deno DNS Resolver

moose

moose

Posted on October 1, 2021

Deno DNS Resolver

I make a DNS resolver in Deno using type script with Deno's built in Deno.resolveDns functionality. The following snippit grabs an array of record types and builds a return object with them. Deno is still new so there is some "novel" usage here, but I believe that more functionality will come for sure.

create dns_resolver.ts file

Copypaste the following:


let records = ["MX", "AAAA", "A", "SRV","ANAME"]
export async function dns_call(domain:string, records_types:Array<string>):Promise<Object>{
    let promise:Promise<any> = new Promise(function(resolve,reject) {

        let ret_object = {}
        for (let i = 0; i < records_types.length;i++){
            // @ts-ignore
            Deno.resolveDns(domain, records_types[i]).then(function (dns_resolution) {
                // @ts-ignore
                ret_object[records_types[i]] = dns_resolution
                if(i === records_types.length -1){
                    resolve(ret_object)
                }
            }).catch(function () {
                // @ts-ignore
                ret_object[records_types[i]] = "not present"
                if(i === records_types.length -1){
                    resolve(ret_object)
                }
            })
        }
    })
    return promise
}
let smoke = await dns_call("example.com", records)
console.log(smoke)
Enter fullscreen mode Exit fullscreen mode

run

$ > deno run --allow-net --unstable dns_resolver.ts
Enter fullscreen mode Exit fullscreen mode

Play around with it.

๐Ÿ’– ๐Ÿ’ช ๐Ÿ™… ๐Ÿšฉ
moose
moose

Posted on October 1, 2021

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

ยฉ TheLazy.dev

About