Nibbling Perfect Macaroni

    soans
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.10 • Public • Published

    soans (SOA-based NS Lookup)

    Find NS records in the DNS Hierarchy by discovering and directly querying SOA records.

    Note: This library uses direct UDP/TCP communications to the Authorities so DNS caching is avoided and results are provided nearly immediately after records are added.

    This library will take a given domain and walk through each of the subdomains finding SOA records ("authorities") then check each authority for the existence of an NS record.

    For example, a domain of foo.bar.baz.scaffold.ly will do the following:

    • Find SOA (if any) on:
      • bar.baz.scaffold.ly
      • baz.scaffold.ly
      • scaffold.ly
      • ly (TLDs fetch NS records)
    • Then for each valid SOA, find the first with NS records.
      • In the event the SOA record reports NS records (e.g. records have been added but the zone doesn't exist yet) return those NS records

    CLI

    $ npx soans scaffold.ly
    ns-1014.awsdns-62.net
    ns-1219.awsdns-24.org
    ns-1914.awsdns-47.co.uk
    ns-234.awsdns-29.com

    Installation

    yarn:

    yarn add soans

    npm:

    npm install --save soans

    Usage

    import { NsLookup } from 'soans';
    
    (await NsLookup('facebook.com')).addresses;
    // ["a.ns.facebook.com","b.ns.facebook.com","d.ns.facebook.com","c.ns.facebook.com"]
    
    (await NsLookup('asdf.facebook.com')).addresses;
    // Throws NoNameserversError
    
    (await NsLookup('doesnotexist.doesnotexist')).addresses;
    // Throws NoAuthoritiesError
    
    (await NsLookup('facebook.com', { proto: 'tcp', defaultDns: '8.8.8.8' })).addresses;
    // ["a.ns.facebook.com","b.ns.facebook.com","d.ns.facebook.com","c.ns.facebook.com"]

    Options

    proto:

    Set the default protocol, either tcp or udp. If tcp fails, fall back to udp.

    Default: udp

    defaultDns:

    Set the default DNS to use for authoratitive lookups.

    Default: one.one.one.one

    Issues

    Create an issue in GitHub issues for this repostiory.

    Authors

    Christian Nuss

    Sponsored By

    Scaffoldly

    License

    MIT

    Install

    npm i soans

    DownloadsWeekly Downloads

    0

    Version

    1.0.10

    License

    MIT

    Unpacked Size

    57.7 kB

    Total Files

    24

    Last publish

    Collaborators

    • cnuss