UNPKG

@stacksjs/dnsx

Version:

A command-line & library DNS client. Like dig & dog, but for TypeScript.

58 lines (57 loc) 1.47 kB
import { Buffer } from 'node:buffer'; import type { DnsAnswer, DnsQuery, DnsResponse, EDNSMode, ProtocolTweaks } from './types'; /** * Build a DNS query packet */ export declare function buildQuery(query: DnsQuery, options?: { id?: number txid?: number edns?: EDNSMode tweaks?: ProtocolTweaks verbose?: boolean }): Buffer; /** * Parse a DNS response packet */ export declare function parseResponse(buffer: Buffer): DnsResponse; /** * DNS header flags */ export declare class DnsFlags { response: boolean; opcode: number; authoritative: boolean; truncated: boolean; recursionDesired: boolean; recursionAvailable: boolean; authenticData: boolean; checkingDisabled: boolean; responseCode: number; static fromBuffer(buffer: Buffer): DnsFlags; toBuffer(): Buffer; } /** * DNS wire format encoder */ export declare class DnsEncoder { constructor(size?: number, verbose?: boolean); writeHeader(id: number, flags: DnsFlags, counts: { qdcount: number ancount: number nscount: number arcount: number }): void; writeName(name: string): void; writeQuestion(query: DnsQuery): void; getBuffer(): Buffer; } /** * DNS wire format decoder */ export declare class DnsDecoder { constructor(buffer: Buffer); readName(): string; readHeader(): { id: number, flags: DnsFlags, counts: { qdcount: number, ancount: number, nscount: number, arcount: number } }; readQuestion(): DnsQuery; readAnswer(): DnsAnswer; }