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


Coverage 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.

📋 Table of Contents

🚀 Installation

pip install nadzoring

💻 Usage

Nadzoring uses a hierarchical command structure. 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 False
--quiet -q Suppress non-error output False
--no-color - Disable colored output False
--output -o Output format (table, json, csv) table
--save - Save results to file (provide filename) None

Commands

Network Base Commands

The network-base group contains commands for basic network operations.

ping-address

Ping one or more addresses to check if they're reachable.

Syntax:

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

Arguments:

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

Default behavior:

  • Returns a table with columns: Address and IsPinged
  • "yes" (green) = host is reachable
  • "no" (red) = host is unreachable

Examples:

# Ping a single address
nadzoring network-base ping-address 8.8.8.8

# Ping multiple addresses
nadzoring network-base ping-address google.com cloudflare.com 1.1.1.1

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

# Ping and save results
nadzoring network-base ping-address -o csv --save results.csv 8.8.8.8 1.1.1.1
get-network-params

Display detailed network configuration parameters of your system.

Syntax:

nadzoring network-base get-network-params [OPTIONS]

Default behavior:

  • Returns a table with network interface information, IP addresses, and other network parameters

Examples:

# Basic network params display
nadzoring network-base get-network-params

# Get network params in JSON format
nadzoring network-base get-network-params -o json

# Save network params to file with verbose logging
nadzoring network-base get-network-params -v --save network_config.json
get-ip-by-hostname

Resolve hostnames to IP addresses and check IPv4/IPv6 availability.

Syntax:

nadzoring network-base get-ip-by-hostname [OPTIONS] HOSTNAMES...

Arguments:

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

Output columns:

  • Hostname - The original hostname
  • IP Address - Resolved IP address
  • IPv4 Check - "passed"/"failed" for IPv4 connectivity
  • IPv6 Check - "passed"/"failed" for IPv6 connectivity
  • Router IPv4 - Your router's IPv4 address (or "Not found")
  • Router IPv6 - Your router's IPv6 address (or "Not found")

Examples:

# Resolve a single hostname
nadzoring network-base get-ip-by-hostname google.com

# Resolve multiple hostnames
nadzoring network-base get-ip-by-hostname google.com github.com stackoverflow.com

# Quiet mode - only show results
nadzoring network-base get-ip-by-hostname -q example.com

# Save results as CSV
nadzoring network-base get-ip-by-hostname --save dns_results.csv google.com cloudflare.com
get-service-by-port

Identify which service typically runs on specified ports.

Syntax:

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

Arguments:

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

Output columns:

  • port - The port number
  • service - Service name (or "Unknown" if not recognized)

Examples:

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

# Check a range of ports (using shell expansion)
nadzoring network-base get-service-by-port 20 21 22 23 25 80 443

# JSON output for programmatic use
nadzoring network-base get-service-by-port -o json 3306 5432 27017

# Save service information
nadzoring network-base get-service-by-port --save services.csv 80 443 22 3389

📊 Output Formats

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

Table Format (default)

┌─────────────┬────────────┐
│ Address     │ IsPinged   │
├─────────────┼────────────┤
│ 8.8.8.8     │ yes        │
│ 1.1.1.1     │ yes        │
│ unreachable │ no         │
└─────────────┴────────────┘

JSON Format

[
  {
    "Address": "8.8.8.8",
    "IsPinged": "yes"
  },
  {
    "Address": "1.1.1.1",
    "IsPinged": "yes"
  }
]

CSV Format

Address,IsPinged
8.8.8.8,yes
1.1.1.1,yes

💾 Saving Results

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

# Save as JSON
nadzoring network-base ping-address -o json --save ping_results.json 8.8.8.8

# Save as CSV
nadzoring network-base ping-address -o csv --save ping_results.csv 8.8.8.8

# Save as formatted table
nadzoring network-base ping-address -o table --save ping_results.txt 8.8.8.8

📝 Logging Levels

Nadzoring provides three logging modes:

  • Normal mode (no flags): Shows command output and warnings
  • Verbose mode (-v/--verbose): Shows detailed execution information including timing
  • Quiet mode (-q/--quiet): Suppresses all non-error output

🔍 Examples

Complete Network Diagnostics

# Run comprehensive network diagnostics
nadzoring network-base get-network-params -v
nadzoring network-base get-ip-by-hostname google.com cloudflare.com github.com
nadzoring network-base ping-address 8.8.8.8 1.1.1.1 google.com
nadzoring network-base get-service-by-port 80 443 22 53

Automated Monitoring Script

#!/bin/bash
# Check critical services and save results with timestamp
TIMESTAMP=$(date +%Y%m%d_%H%M%S)

nadzoring network-base ping-address \
  -o csv \
  --save "ping_check_${TIMESTAMP}.csv" \
  google.com cloudflare.com github.com

nadzoring network-base get-service-by-port \
  -o json \
  --save "services_${TIMESTAMP}.json" \
  80 443 22 53 3306

Quick Website Block Check

# Check if a website might be blocked
nadzoring network-base get-ip-by-hostname example.com
nadzoring network-base ping-address example.com

Contributing

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

  • Additional test cases for thread-local scenarios
  • Performance optimization proposals
  • Extended version format support
  • IDE integration plugins

License & Support

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

Explore Documentation | Report Issue | View Examples

(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.0.tar.gz (128.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.0-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for nadzoring-0.1.0.tar.gz
Algorithm Hash digest
SHA256 99b69d4596b4d16f6d66bfb30e16f5f86df0f41a4e81d491f554fe8b5d1a141b
MD5 369b112643287bf654838d0f5974d6b3
BLAKE2b-256 90b639c0cc0747e8f9a232e559b67fc8270998409ff9a5a6dbeede75231f4fa3

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for nadzoring-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 657e4fae50d1ed91a12196ba8338af71735143d8dbe13a7611aa518cd7dd458c
MD5 3fe0e720d8d2cc172b7e869751ce5c12
BLAKE2b-256 fd0125fc843a607b7ffa45b5a608864096dbea306c9ac41460ed9e7f71de9c2e

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