Thanks to visit codestin.com
Credit goes to github.com

Skip to content

wangjianhao222/whois

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

DNSTerm: Decentralized DNS Reconnaissance Terminal

Version: 1.0 | Status: Operational | License: MIT

Abstract

DNSTerm is a next-generation, client-side DNS reconnaissance framework engineered for network analysts, security professionals, and system administrators. It leverages a decentralized, browser-based architecture to perform DNS lookups via DNS-over-HTTPS (DoH), bypassing traditional DNS resolution pathways. This approach enhances privacy and circumvents potential network-level interference or monitoring. The user interface is encapsulated within a retro-futuristic, "hacker-style" terminal aesthetic, providing a high-fidelity, immersive operational experience.

Core Architecture

The system is designed as a monolithic, single-file HTML application, ensuring maximum portability and zero-dependency deployment. All requisite components—structural markup (HTML5), styling (CSS3), and logic (ES6 JavaScript)—are embedded within the document.

Key Components:

  1. View Layer (DOM & CSS3):

    • Structure: A semantic HTML5 structure defines the application's layout, including the input vector, control surfaces, and the output display buffer.
    • Styling: The visual theme is rendered via CSS3. It employs a CRT (Cathode Ray Tube) monitor simulation, complete with a dark background, phosphor-green text (#00ff41), text-shadowing for a glow effect, and a subtle flickering animation. A scanline overlay further enhances the analog feel. The typography is strictly monospaced to emulate classic terminal environments.
  2. Controller & Logic Layer (ES6 JavaScript):

    • Event Handling: An asynchronous event listener is bound to the primary form submission event. This serves as the entry point for the core application logic.
    • Input Sanitization: Domain inputs are trimmed to remove extraneous whitespace before processing.
    • API Abstraction: The fetch API is utilized to interface with the Cloudflare public DoH resolver (1.1.1.1). The request is configured to accept application/dns-json, a standard for receiving DNS data in a structured JSON format.
    • State Management: A simple boolean flag (isTyping) manages the state of the output display, preventing concurrent write operations and ensuring sequential data rendering.
  3. Output Subsystem:

    • Typewriter Effect: A recursive typeWriter function simulates real-time data streaming by rendering text character-by-character into the output buffer (<pre> element). This is a crucial component of the user experience, mimicking the data feed of a vintage terminal session.
    • Data Formatting: The raw JSON response from the DoH API is parsed and dynamically reformatted into a human-readable layout, closely resembling the output of the standard dig (Domain Information Groper) command-line utility. This includes distinct sections for the header, question, and answer.
    • Cursor Simulation: A blinking block cursor, achieved through a CSS keyframe animation, is dynamically appended to the output to indicate system readiness or the completion of a write operation.

Features

  • Zero-Backend Architecture: Operates entirely within the client's browser, requiring no server-side components.
  • Enhanced Privacy: Utilizes DNS-over-HTTPS to encrypt DNS queries, protecting them from eavesdropping.
  • dig-like Output: Presents DNS records in a familiar, professional format.
  • Immersive UI/UX: Hacker-themed terminal interface provides a unique and engaging user experience.
  • Cross-Platform: Runs on any modern web browser that supports HTML5, CSS3, and ES6.
  • Portable: Distributed as a single .html file for easy sharing and deployment.

Operational Flow

  1. Initialization: Upon loading, the system initializes and displays a ready prompt.
  2. User Input: The operator enters a target domain name into the input field.
  3. Query Submission: The operator triggers the resolution process via the "Resolve" button.
  4. Asynchronous Query: The JavaScript logic constructs and dispatches an HTTPS GET request to the Cloudflare DoH endpoint.
  5. Response Handling:
    • On Success: The returned JSON payload is parsed. The system formats the header, question, and answer sections and streams the output to the display using the typewriter effect.
    • On Failure: In case of a network error or an invalid API response, a detailed error message is generated and displayed, providing context for diagnostics.
  6. Ready State: The system returns to an idle state, awaiting the next command.

Future Roadmap

  • Q2 2025: Implement support for additional DNS record types (e.g., MX, NS, TXT, CNAME).
  • Q3 2025: Integrate multiple DoH providers with a user-selectable resolver endpoint.
  • Q4 2025: Develop a command history feature, allowing users to recall previous queries.
  • Q1 2026: Explore WebAssembly implementation for a high-performance DNS parsing engine.

This document is classified. For internal use only.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •