Skip to main content

Add your description here

Project description

Nadzoring

An open source tool for detecting website blocks, downdetecting and network analysis
Explore the docs »

Getting Started · Basic Usage · Documentation · License


PyPI - Downloads PyPI - Version PyPI - Python Version GitHub contributors

Nadzoring (from Russian "надзор" - supervision/oversight + English "-ing" suffix) is a FOSS (Free and Open Source Software) command-line tool for detecting website blocks, monitoring service availability, and network analysis. It helps you investigate network connectivity issues, check if websites are accessible, and analyze network configurations with comprehensive DNS diagnostics, including advanced DNS poisoning detection.

📋 Table of Contents

🚀 Installation

pip install nadzoring

💻 Usage

Nadzoring uses a hierarchical command structure with two main command groups: dns and network-base. All commands support common global options for output formatting and logging.

Global Options

These options are available for all commands:

Option Short Description Default
--verbose -v Enable verbose output with execution timing False
--quiet -q Suppress non-error output (progress bars, logs) False
--no-color - Disable colored output False
--output -o Output format (table, json, csv, html, html_table) table
--save - Save results to file (provide filename) None

DNS Commands

The dns command group provides comprehensive DNS analysis and troubleshooting capabilities.

dns resolve

Resolve DNS records for one or more domains with support for multiple record types.

Syntax:

nadzoring dns resolve [OPTIONS] DOMAINS...

Arguments:

  • DOMAINS... - One or more domain names to resolve (required)

Options:

Option Short Description Default
--type -t DNS record type (A, AAAA, CNAME, MX, NS, TXT, ALL) A
--nameserver -n Specific nameserver to use System default
--short - Compact output like host command style False
--show-ttl - Show TTL for each record False
--format-style - Output style (standard, bind, host, dig) standard

Examples:

# Basic A record lookup
nadzoring dns resolve google.com

# Multiple record types
nadzoring dns resolve -t A -t MX -t TXT example.com

# ALL record types with specific nameserver
nadzoring dns resolve -t ALL -n 8.8.8.8 github.com

# Multiple domains with TTL display
nadzoring dns resolve --show-ttl google.com cloudflare.com

# Short format like host command
nadzoring dns resolve --short --type ALL example.com

dns reverse

Perform reverse DNS lookup (PTR records) for IP addresses.

Syntax:

nadzoring dns reverse [OPTIONS] IP_ADDRESSES...

Arguments:

  • IP_ADDRESSES... - One or more IP addresses to look up (required)

Options:

Option Short Description
--nameserver -n Specific nameserver to use

Examples:

# Basic reverse lookup
nadzoring dns reverse 8.8.8.8

# Multiple IPs
nadzoring dns reverse 1.1.1.1 8.8.8.8 9.9.9.9

# Using specific nameserver
nadzoring dns reverse -n 208.67.222.222 8.8.4.4

dns check

Perform comprehensive DNS check including validation of MX priorities and TXT records (SPF/DKIM).

Syntax:

nadzoring dns check [OPTIONS] DOMAINS...

Arguments:

  • DOMAINS... - One or more domain names to check (required)

Options:

Option Short Description Default
--nameserver -n Specific nameserver to use System default
--types -t Record types to check (A, AAAA, CNAME, MX, NS, TXT, ALL) ALL

Features:

  • MX record validation (duplicate priority detection)
  • TXT record validation (SPF policy checks, DKIM key presence)
  • Comprehensive error reporting

Examples:

# Complete DNS check
nadzoring dns check example.com

# Check specific record types
nadzoring dns check -t MX -t TXT gmail.com

# Multiple domains with custom nameserver
nadzoring dns check -n 9.9.9.9 google.com cloudflare.com

dns trace

Trace the DNS resolution path from root servers to authoritative nameservers.

Syntax:

nadzoring dns trace [OPTIONS] DOMAIN

Arguments:

  • DOMAIN - Domain name to trace (required)

Options:

Option Short Description
--nameserver -n Starting nameserver (default: a.root-servers.net - 198.41.0.4)

Output shows:

  • Each hop with nameserver IP
  • Response time per nameserver
  • Records returned at each level
  • Delegation information
  • Final authoritative answer

Examples:

# Trace from root servers
nadzoring dns trace example.com

# Trace starting from specific nameserver
nadzoring dns trace -n 8.8.8.8 google.com

# Verbose trace with timing
nadzoring dns trace -v github.com

dns compare

Compare DNS responses from different nameservers to detect discrepancies.

Syntax:

nadzoring dns compare [OPTIONS] DOMAIN

Arguments:

  • DOMAIN - Domain name to compare (required)

Options:

Option Short Description Default
--servers -s DNS servers to compare 8.8.8.8, 1.1.1.1, 9.9.9.9
--type -t Record types to compare A

Features:

  • Response time comparison
  • Record consistency checking
  • Automatic discrepancy detection
  • Progress indicator for multiple queries

Examples:

# Compare A records across default servers
nadzoring dns compare example.com

# Compare MX records with custom servers
nadzoring dns compare -t MX -s 8.8.8.8 -s 208.67.222.222 -s 9.9.9.9 gmail.com

# Multiple record types
nadzoring dns compare -t A -t AAAA -t NS cloudflare.com

dns health

Perform comprehensive DNS health check with scoring system.

Syntax:

nadzoring dns health [OPTIONS] DOMAIN

Arguments:

  • DOMAIN - Domain name to check (required)

Options:

Option Short Description
--nameserver -n Nameserver to use for checks

Health Scoring:

  • 80-100: Healthy - All records properly configured
  • 50-79: Degraded - Some issues detected
  • 0-49: Unhealthy - Critical configuration problems

Validation includes:

  • Record presence for all standard types
  • MX priority uniqueness
  • SPF policy completeness
  • DKIM key presence
  • CNAME configuration rules
  • Subdomain-specific checks

Examples:

# Basic health check
nadzoring dns health example.com

# Health check with custom nameserver
nadzoring dns health -n 1.1.1.1 google.com

# Verbose health report
nadzoring dns health -v github.com

dns benchmark

Benchmark DNS server performance with configurable queries.

Syntax:

nadzoring dns benchmark [OPTIONS]

Options:

Option Short Description Default
--domain -d Domain to use for benchmarking google.com
--servers -s DNS servers to benchmark (can be used multiple times) Public DNS servers
--type -t Record type to query (A, AAAA, MX, NS, TXT) A
--queries -q Number of queries per server 10
--parallel/--sequential - Run benchmarks in parallel or sequentially parallel

Output includes:

  • Average response time
  • Minimum/maximum response time
  • Success rate percentage
  • Failed queries count

Examples:

# Benchmark default servers
nadzoring dns benchmark

# Benchmark specific servers with 20 queries each
nadzoring dns benchmark -s 8.8.8.8 -s 1.1.1.1 -s 9.9.9.9 --queries 20

# Benchmark MX records sequentially
nadzoring dns benchmark -t MX --sequential

# Save results as JSON
nadzoring dns benchmark -o json --save dns_benchmark.json

dns poisoning

Detect DNS poisoning, censorship, or CDN-based routing variations.

Syntax:

nadzoring dns poisoning [OPTIONS] DOMAIN

Arguments:

  • DOMAIN - Domain name to check for poisoning (required)

Options:

Option Short Description Default
--control-server -c Control server to compare against 8.8.8.8
--test-servers -t Test servers to check (can be used multiple times) All public DNS servers
--type -T Record type to check A
--additional-types -a Additional record types to check on control server None

Detection Capabilities:

  • CDN Detection: Identifies legitimate CDN networks (Cloudflare, Google, Akamai, AWS, etc.)
  • Anycast/GeoDNS: Recognizes normal anycast routing behavior
  • IP Pattern Analysis: Analyzes IP ownership, geographic diversity, and network ranges
  • Consensus Checking: Determines most common response across servers
  • Severity Classification: Categorizes issues as INFO, LOW, MEDIUM, HIGH, or CRITICAL

Output includes:

  • Poisoning level (NONE, LOW, MEDIUM, HIGH, CRITICAL, SUSPICIOUS)
  • Confidence percentage
  • Control server analysis
  • IP ownership detection
  • CDN detection with provider identification
  • Inconsistency details per server
  • Geo-diversity metrics
  • Final verdict with explanation

Examples:

# Basic poisoning check
nadzoring dns poisoning example.com

# Check with custom control server and additional record types
nadzoring dns poisoning -c 1.1.1.1 -a MX -a TXT google.com

# Verbose poisoning analysis
nadzoring dns poisoning -v github.com

# Save detailed HTML report
nadzoring dns poisoning -o html --save poisoning_report.html example.com

Network Base Commands

The network-base command group provides basic network operations and diagnostics.

ping

Ping one or more addresses to check reachability.

Syntax:

nadzoring network-base ping [OPTIONS] ADDRESSES...

Arguments:

  • ADDRESSES... - One or more IP addresses or hostnames (required)

Examples:

# Ping single address
nadzoring network-base ping 8.8.8.8

# Multiple addresses
nadzoring network-base ping google.com cloudflare.com 1.1.1.1

# JSON output
nadzoring network-base ping -o json github.com

geolocation

Get geolocation information for IP addresses.

Syntax:

nadzoring network-base geolocation [OPTIONS] IPS...

Arguments:

  • IPS... - One or more IP addresses (required)

Output includes:

  • Latitude/Longitude
  • Country
  • City

Examples:

# Geolocate IPs
nadzoring network-base geolocation 8.8.8.8 1.1.1.1

# Save results
nadzoring network-base geolocation --save locations.json 8.8.8.8

params

Display detailed network configuration parameters of your system.

Syntax:

nadzoring network-base params [OPTIONS]

Output includes:

  • Default interface name
  • IPv4 address
  • IPv6 address
  • Router (gateway) IP
  • MAC address
  • Public IP address

Examples:

# Basic network info
nadzoring network-base params

# JSON output for scripting
nadzoring network-base params -o json

# Save configuration
nadzoring network-base params --save network_config.json

host-to-ip

Resolve hostnames to IP addresses with IPv4/IPv6 availability checking.

Syntax:

nadzoring network-base host-to-ip [OPTIONS] HOSTNAMES...

Arguments:

  • HOSTNAMES... - One or more domain names (required)

Output includes:

  • Resolved IP address
  • IPv4 connectivity check
  • IPv6 connectivity check
  • Router IPv4/IPv6 addresses

Examples:

# Resolve multiple domains
nadzoring network-base host-to-ip google.com github.com cloudflare.com

# CSV output for analysis
nadzoring network-base host-to-ip -o csv --save resolutions.csv example.com

port-service

Identify which service typically runs on specified ports.

Syntax:

nadzoring network-base port-service [OPTIONS] PORTS...

Arguments:

  • PORTS... - One or more port numbers (required)

Examples:

# Check common ports
nadzoring network-base port-service 80 443 22 53 3306

# JSON output for integration
nadzoring network-base port-service -o json 8080 5432 27017

📊 Output Formats

Nadzoring supports four output formats controlled by the -o/--output flag:

Table Format (default)

┌─────────────┬────────┬─────────────┐
│ domain      │ type   │ value       │
├─────────────┼────────┼─────────────┤
│ example.com │ A      │ 93.184.216.34│
│ example.com │ MX     │ 10 mail.example.com│
└─────────────┴────────┴─────────────┘

JSON Format

[
  {
    "domain": "example.com",
    "type": "A",
    "value": "93.184.216.34"
  }
]

CSV Format

domain,type,value
example.com,A,93.184.216.34

HTML Format

Generates styled HTML tables or complete web pages with CSS styling.

💾 Saving Results

Use the --save option to save command output to a file. The format is determined by the -o/--output flag:

# Save DNS check as HTML report
nadzoring dns check -o html --save dns_report.html example.com

# Save comparison as CSV
nadzoring dns compare -o csv --save comparison.csv google.com

# Save poisoning detection as JSON
nadzoring dns poisoning -o json --save poisoning_results.json example.com

# Save trace as HTML
nadzoring dns trace -o html --save trace.html cloudflare.com

📝 Logging Levels

Nadzoring provides three logging modes:

  • Normal mode (no flags): Shows command output and warnings with progress bars
  • Verbose mode (-v/--verbose): Shows detailed execution information, timing, and debug logs
  • Quiet mode (-q/--quiet): Suppresses progress bars and non-error output, ideal for scripting

🔍 Examples

DNS Diagnostics

# Complete DNS investigation workflow
nadzoring dns health example.com
nadzoring dns trace example.com
nadzoring dns compare -t A -t MX example.com
nadzoring dns check -t ALL -v example.com

DNS Poisoning Detection

# Check if a domain might be censored or poisoned
nadzoring dns poisoning -v twitter.com

# Compare with multiple control servers
nadzoring dns poisoning -c 8.8.8.8 -c 1.1.1.1 -c 9.9.9.9 example.com

# Generate detailed HTML report
nadzoring dns poisoning -o html --save poisoning_report.html github.com

DNS Performance Benchmarking

# Find fastest DNS server for your location
nadzoring dns benchmark --queries 20 --parallel

# Compare specific servers
nadzoring dns benchmark -s 8.8.8.8 -s 1.1.1.1 -s 208.67.222.222 -s 9.9.9.9

# Benchmark different record types
nadzoring dns benchmark -t MX -d gmail.com --queries 15

Complete Network Diagnostics

# Run comprehensive network diagnostics
nadzoring network-base params -v
nadzoring network-base host-to-ip google.com cloudflare.com github.com
nadzoring network-base ping 8.8.8.8 1.1.1.1 google.com
nadzoring network-base geolocation 8.8.8.8 1.1.1.1

Automated Monitoring Script

#!/bin/bash
# Check DNS health and network status with timestamp
TIMESTAMP=$(date +%Y%m%d_%H%M%S)

# DNS health check
nadzoring dns health -o json --save "dns_health_${TIMESTAMP}.json" example.com

# DNS poisoning check
nadzoring dns poisoning -o html --save "poisoning_${TIMESTAMP}.html" example.com

# DNS trace
nadzoring dns trace -o html --save "dns_trace_${TIMESTAMP}.html" example.com

# Network parameters
nadzoring network-base params -o csv --save "network_${TIMESTAMP}.csv"

# DNS benchmark summary
nadzoring dns benchmark -o table --save "benchmark_${TIMESTAMP}.txt"

Quick Website Block Check

# Check if a website might be blocked
nadzoring dns resolve -t ALL example.com
nadzoring dns trace example.com
nadzoring network-base ping example.com
nadzoring dns compare example.com
nadzoring dns poisoning example.com  # Most comprehensive block detection

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines. Key areas for contribution include:

  • Additional DNS record type support
  • New validation rules for health checks
  • CDN network database expansion
  • Performance optimization
  • Additional output formats
  • IDE integration plugins

License & Support

This project is licensed under GNU GPL 3 License - see LICENSE. For commercial support and enterprise features, contact alexeev.dev@mail.ru.

Explore Documentation | Report Issue |

(back to top)


Copyright © 2025 Alexeev Bronislav. Distributed under GNU GPL v3 license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nadzoring-0.1.3.tar.gz (151.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nadzoring-0.1.3-py3-none-any.whl (54.3 kB view details)

Uploaded Python 3

File details

Details for the file nadzoring-0.1.3.tar.gz.

File metadata

  • Download URL: nadzoring-0.1.3.tar.gz
  • Upload date:
  • Size: 151.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.21

File hashes

Hashes for nadzoring-0.1.3.tar.gz
Algorithm Hash digest
SHA256 73673e86456c1a45d674a7c30d39ea36e5b70150f0fd12804c957b8f8be745d6
MD5 94b4bfb32c69f30dde4b5d9a2d74a610
BLAKE2b-256 9f5f2b05ab656666a5e793073bcdb53074970f5049d538bae109f07545aa880d

See more details on using hashes here.

File details

Details for the file nadzoring-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: nadzoring-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 54.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.21

File hashes

Hashes for nadzoring-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bc4a1d14e1cee7cb2a7032243e0fd8313abfe6e0e1e2451426682884fa4b7026
MD5 f9d2c0c95d1a054f71d10853d3f7b896
BLAKE2b-256 a14aa770abffb5e7b66ab81881c70fe12b2d02dd5c4a96df7ca15fd282c07c8e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page