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.

📋 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 |

(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.1.tar.gz (129.9 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.1-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for nadzoring-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c9e0b927960eb2d3d10c5a830a9a6ab6abbbd81f606459deceff59d54c12469b
MD5 26e3988ed0e49337c4c2f2eed0dd8870
BLAKE2b-256 a24a92d257c47e575f753ef6c13bdac8afcec20c6636ed09ae34d102b98d7224

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for nadzoring-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e048bfa0f5e92587c2be70d9097b45c58b839cb28cddf01fa6ddc1313e9af613
MD5 b0c61750b1d6ade06e88c4a17998fa08
BLAKE2b-256 e336b60a3a1f9c9352657df4b390ec5a7b4286893885fd8450be30bc4cbcbb6a

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