Skip to main content

A comprehensive ONVIF device discovery and analysis tool for network cameras and devices

Reason this release was yanked:

Accidental initial release under wrong version

Project description

ONVIF Scout

A comprehensive ONVIF device discovery and analysis tool that helps you find, authenticate, and examine ONVIF-compatible devices on your network. ONVIF Scout provides robust device detection, credential testing, and detailed capability analysis with an intuitive command-line interface.

๐ŸŒŸ Features

Device Discovery

  • Uses WS-Discovery protocol for device detection
  • Supports multiple network interfaces
  • Configurable timeout and retry settings
  • Automatic response parsing and validation

Authentication Probe

  • Concurrent credential testing with configurable workers
  • Support for both Basic and Digest authentication
  • Automatic auth type detection
  • Built-in retry mechanism for reliability
  • Progress tracking for long operations

Feature Detection

  • Comprehensive capability analysis
  • Service enumeration
  • Device information retrieval
  • PTZ capabilities detection
  • Media profile inspection
  • Analytics support detection

User Interface

  • Color-coded console output
  • Progress bars for long operations
  • Detailed debug logging option
  • Clean, organized results display
  • Support for quiet mode

๐Ÿ“‹ Requirements

  • Python 3.8 or higher
  • Network access to ONVIF devices
  • Required packages:
    • colorama >= 0.4.6
    • requests >= 2.32.3

๐Ÿš€ Installation

Using pip (Recommended)

pip install onvifscout

From Source

# Clone the repository
git clone https://github.com/chrissmartin/onvifscout.git
cd onvifscout

# Create virtual environment (recommended)
python -m venv venv

# Activate virtual environment
# On Linux/MacOS:
source venv/bin/activate
# On Windows:
venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Install the package
pip install -e .

๐Ÿ› ๏ธ Usage

Basic Command

onvifscout

Command-Line Options

Optional arguments:
  -h, --help            Show this help message
  --timeout SECS        Discovery timeout in seconds (default: 3)
  --max-workers NUM     Maximum concurrent authentication attempts (default: 5)
  --usernames LIST      Comma-separated list of usernames to try
  --passwords LIST      Comma-separated list of passwords to try
  --skip-auth          Skip authentication probe
  --skip-features      Skip feature detection
  --no-color           Disable colored output
  --quiet              Suppress non-essential output
  --debug              Enable debug logging

Example Commands

# Extended discovery timeout and more concurrent workers
onvifscout --timeout 5 --max-workers 10

# Custom credential lists
onvifscout --usernames admin,root,operator --passwords admin,12345,password123

# Quick discovery only (skip auth and feature detection)
onvifscout --skip-auth --skip-features

# Debug mode with extended timeout
onvifscout --debug --timeout 10

# Quiet mode with custom credentials
onvifscout --quiet --usernames admin --passwords admin,12345

Default Credentials

The tool tests the following default credentials unless otherwise specified:

  • Usernames: admin, root, service
  • Passwords: admin, 12345, password

๐Ÿ“ Project Structure

onvifscout/
โ”œโ”€โ”€ onvifscout/
โ”‚   โ”œโ”€โ”€ __init__.py        # Package initialization
โ”‚   โ”œโ”€โ”€ main.py            # CLI entry point
โ”‚   โ”œโ”€โ”€ auth.py            # Authentication handling
โ”‚   โ”œโ”€โ”€ discovery.py       # Device discovery
โ”‚   โ”œโ”€โ”€ features.py        # Feature detection
โ”‚   โ”œโ”€โ”€ models.py          # Data models
โ”‚   โ”œโ”€โ”€ utils.py           # Utilities and logging
โ”‚   โ””โ”€โ”€ help_formatter.py  # Help message formatting
โ”œโ”€โ”€ setup.py               # Package configuration
โ”œโ”€โ”€ requirements.txt       # Dependencies
โ””โ”€โ”€ README.md             # Documentation

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit pull requests, create issues, or suggest improvements.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“œ License

Distributed under the MIT License. See LICENSE for more information.

โœ‰๏ธ Contact

Chriss Martin - thechrissmartin@gmail.com

Project Link: https://github.com/chrissmartin/onvifscout

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

onvifscout-1.0.1.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

onvifscout-1.0.1-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

Details for the file onvifscout-1.0.1.tar.gz.

File metadata

  • Download URL: onvifscout-1.0.1.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for onvifscout-1.0.1.tar.gz
Algorithm Hash digest
SHA256 63c1261d8a01e5cb49d4f94fcdaed551b34c8b57b6331f7153846c371ed4df1c
MD5 6964dba7aeef76ab25b04fadec8df553
BLAKE2b-256 b749d2974b298153ba7594d0ad7f1aaaf67cf8f0e55fa010e78a4eefc1638206

See more details on using hashes here.

File details

Details for the file onvifscout-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: onvifscout-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 19.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for onvifscout-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e56220e57f980e322ded15056cb9742264588ac3c95610ab0a6be5501ef54fff
MD5 e9ed4297cda0fdfe7d122548dea6cc14
BLAKE2b-256 5572a469f8ab100178db56a0016ebcb9ca4b809914a87270c94c9dee70f59ed0

See more details on using hashes here.

Supported by

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